入口方法
在上一篇文章中,我們配置了 Dart
開發的基本環境,而且在一個 main
方法中輸出了簡單的一句話。然而,這個 main
方法就是一個 Dart
程序(腳本)的入口。
語法:
main(){
//邏輯
}
註釋
與其他語言一致,分爲單行註釋和多行註釋。
//這是一個單行註釋
/*這是一個多行註釋*/
變量
在 Dart
語言中,定義變量有三種方式:
- 通過關鍵字
var
聲明變量(類似於JS
) - 通過變量類型來指定這個變量的類型(類似於
Java
) - 通過關鍵字
dynamic
聲明一個可跨類型的變量。
只能使用一種方式來定義,不能同時使用兩種方式定義一個變量。
通過關鍵字 var
聲明變量
通過關鍵字 var
可以聲明任何類型的變量,Dart
具有變量類型推斷的能力,一個變量一旦被初始化,那麼這個變量的類型就確定了,就是這個初始化值的類型!!
var str = "jonas";
print(str);
str = 123;//報錯
print(str);
分析:變量 str
已經被初始化值爲一個字符串類型,所以這個變量的類型也被確定爲字符串類型,從而不能保存數值類型的值。
注意:如果聲明與初始化是分開進行的,結果是不一樣的:
var str;
str = "jonas";
print(str);
str = 123;
print(str);
以上代碼的執行結果是:正常輸出 jonas
和 123.
出現這種結果的原因是:變量的聲明與初始化是不分開的,如果通過 var
關鍵字聲明一個變量,而沒有顯式的賦值(就如上面的情況),那麼這個變量其實會被解釋器賦值爲 null
,從而這個變量的類型也就確定爲 null
類型,在 Dart
語言中,null
類型的變量可以保存所有類型的值!!
通過類型關鍵字聲明變量
在 Dart
語言中,提供了很多種變量類型(具體在後面的文章介紹),在聲明變量時可以直截了當的指定這個變量的類型,從而省去解釋器的類型推斷。
String str = "jonas";
int num = 123;
print(str);
print(num);
通過關鍵字 dynamic
聲明變量
通過關鍵字 dynamic
聲明的變量可以保存任意類型的值。
dynamic str = "jonas";
print(str);
str = 123;
print(str);
結果:上面的兩句輸出會正確打印。
需要注意的是:我們更應該使用類型關鍵字去聲明一個變量。
變量的命名規則
命名規則與大部分編程語言一致:
- 區分大小寫
- 可以使用的字符有:字母、數字、下劃線、$,但不能以數字開頭
- 不能是關鍵字和保留字
- 儘量使用小駝峯命名法(不強制)
常量
在 Dart
語言中,提供了兩個關鍵字 const
和 final
用於聲明常量。兩者定義的常量都是不能被修改的,區別在於 final
是惰性的,只有在第一次初始化時才決定這個常量的值,而 const
則在聲明的時候就要指定初始化值。
//正確的
const PI = 3.14;
final num = 132;
const _date = new DateTime.now();//報錯
final date = new DateTime.now();//正確
最後補充一點:在 Dart
語言中,語句都必須以分號或 }
結尾,不能像 JS
那樣拋棄分號了。