Dart語言基礎語法


語法定義了一組用於編寫程式的規則。每種語言規範都定義了自己的語法。Dart程式程式碼由以下組成 -

  • 變數和運算子
  • 函式
  • 表示式和程式設計構造
  • 決策和迴圈結構
  • 註解
  • 庫和包
  • 型別定義
  • 資料結構 - 集合/泛型

第一個Dart語序

main() { 
   print("Hello World!"); 
}

main()函式是Dart中的預定義方法。此方法充當應用程式的入口點。Dart指令碼需要main()方法來執行。print()是一個預定義的函式,它將指定的字串或值列印到標準輸出(即終端)。

上述程式碼的輸出將是 -

Hello World!

執行Dart程式

可以使用以下兩種方式執行Dart程式 -

  • 通過終端/控制台
  • 通過WebStorm IDE

通過終端/控制台

通過終端執行Dart程式 -

  • 進入到當前專案的路徑
  • 在「終端/控制台」視窗中鍵入以下命令 -
C:/> dart helloword.dart

通過WebStorm IDE

要通過WebStorm IDE執行Dart程式 -

  • 右鍵單擊IDE上的Dart指令碼檔案。(該檔案應包含main()函式以啟用執行)
  • 單擊「執行<file_name>」選項。

如下截圖所示 -

WebStorm

Dart命令列選項

Dart命令列選項用於修改Dart指令碼執行。Dart的常見命令列選項包括以下內容 -

編號 命令列選項 描述
1 -c--c 啟用斷言和型別檢查(選中模式)。
2 --version 顯示VM版本資訊
3 --packages <path> 指定程式包解析組態檔案的路徑。
4 -p <path> 指定在何處查詢匯入的庫。此選項不能與--packages一起使用。
5 -h--help 顯示幫助資訊。

啟用檢查模式

Dart程式以兩種模式執行,即 -

  • 檢查模式
  • 生產模式(預設)

建議在開發和測試期間以檢查模式執行Dart VM,因為它會新增警告和錯誤以幫助開發和偵錯過程。選中的模式會強制執行各種檢查,例如型別檢查等。要開啟選中的模式,請在執行指令碼時在指令碼檔案名之前新增-c或—checked選項。

但是,為了在執行指令碼時確保效能優勢,建議在生產模式下執行指令碼。

假設test.dart 指令碼檔案程式碼如下 -

void main() { 
   String s = "welcome to tw511.com"; 
   print(s); 
}

輸入以下命令執行指令碼 -

C:/> dart test.dart

上面指令碼將產生以下輸出 -

welcome to tw511.com

Dart識別符號

識別符號是程式中元素的名稱,如變數,函式等。識別符號的規則是 -

  • 識別符號可以包括字元和數位。但是,識別符號不能以數位開頭。
  • 除下劃線(_)或美元符號($)外,識別符號不能包含特殊符號。
  • 識別符號不能是關鍵字。
  • 它們必須是唯一的。
  • 識別符號區分大小寫。
  • 識別符號不能包含空格。

下表列出了有效和無效識別符號的幾個範例 -

有效識別符號 無效識別符號
firstName Var
first_name first name
num1 first-name
$result 1result

Dart關鍵字

關鍵字在語言的上下文中具有特殊含義。下表中列出了Dart語言中的一些關鍵字。

abstract continue false new this
as default final null throw
assert deferred finally operator true
async do for part try
async* dynamic get rethrow typedef
await else if return var
break enum implements set void
case export import static while
catch external in super with
class extends is switch yield
const factory library    

空白和換行

Dart忽略程式中出現的空格,製表符和換行符。可以在程式中自由使用空格,製表符和換行符,並且可以自由地以簡潔一致的方式格式化和縮排程式,使程式碼易於閱讀和理解。

Dart區分大小寫
Dart區分大小寫。Dart中大寫和小寫字元表示不同地含義。

宣告以分號結尾

每行指令都稱為語句。每個dart語句必須以分號(;)結尾。一行可以包含多個語句。但是,這些語句必須用分號分隔。

Dart註釋

注釋是提高程式可讀性的一種方法。注釋可用於包含有關程式的其他資訊,如程式碼的作者,有關函式/構造的提示等。編譯器會忽略注釋。

Dart支援以下型別的注釋 -

  • 單行注釋(//) - // 和行尾之間的任何文字都視為註釋
  • 多行注釋(/* */) - 這個注釋可能跨越多行。
// 這是單行注釋

/* 這是...
   一個
   多行的
   注釋
*/

Dart物件導向程式設計

Dart是一種物件導向的語言。物件導向是一種遵循真實世界建模的軟體開發範例。物件導向將程式視為通過稱為方法的機制相互通訊的物件集合。

  • 物件 - 物件是任何實體的實時表示。根據Grady Brooch,每個物件必須具有三個功能 -
    • 狀態 - 由物件的屬性描述。
    • 行為 - 描述物件的行為方式。
    • 標識 - 將物件與一組類似此類物件區分開的唯一值。
  • 類 - 類是建立物件的藍圖/模板,類封裝了物件的資料。
  • 方法 - 方法促進物件之間的通訊。

範例:Dart和物件導向

class TestClass {   
   void display() {     
      print("Dart and Object Orientation"); 
   } 
}  
void main() {   
   TestClass c = new TestClass();   
   c.display();  
}

上面的範例程式碼中定義了一個類TestClass。該類有一個display()方法。該方法在終端上列印字串 - "Dart and Object Orientation"new關鍵字建立類的物件。該物件呼叫display()方法。

執行上面程式碼將產生以下輸出 -

Dart and Object Orientation