語法定義了一組用於編寫程式的規則。每種語言規範都定義了自己的語法。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>
”選項。
如下截圖所示 -
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 xuhuhu.com";
print(s);
}
輸入以下命令運行腳本 -
C:/> dart test.dart
上面腳本將產生以下輸出 -
welcome to xuhuhu.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