在VSCode中新建一個helloWorld.dart文件用踩,添加下面的內(nèi)容:
然后在終端執(zhí)行dart helloWorld.dart,就能看到Hello World的結(jié)果了江解。
程序分析:
一设预、Dart語言的入口也是main函數(shù),并且必須顯示的進(jìn)行定義犁河;
二鳖枕、Dart的入口函數(shù)main是沒有返回值的;
三桨螺、傳遞給main的命令行參數(shù)宾符,是通過List<String>完成的。
? ? ? ? 從字面值就可以理解List是Dart中的集合類型灭翔。
? ? ? ? 其中的每一個String都表示傳遞給main的一個參數(shù)魏烫;
四、定義字符串的時候肝箱,可以使用單引號或雙引號哄褒;
五、每行語句必須使用分號結(jié)尾煌张,很多語言并不需要分號呐赡,比如Swift、JavaScript骏融;
?定義變量
1. 明確聲明(Explicit)
2.類型推導(dǎo)(Type Inference)
類型推導(dǎo)聲明變量的方式, 格式如下:
var/dynamic/const/final 變量名稱 = 賦值;
var的使用
dynamic的使用
如果確實(shí)希望這樣做,可以使用dynamic來聲明變量:但是在開發(fā)中, 通常情況下不使用dynamic, 因?yàn)轭愋偷淖兞繒頋撛诘奈kU(xiǎn)
final&const的使用
final和const小案例:
首先, const是不可以賦值為DateTime.now()
其次, final一旦被賦值后就有確定的結(jié)果, 不會再次賦值
3.數(shù)據(jù)類型
1)數(shù)字類型
對于數(shù)值來說链嘀,我們也不用關(guān)心它是否有符號萌狂,以及數(shù)據(jù)的寬度和精度等問題。只要記著整數(shù)用int管闷,浮點(diǎn)數(shù)用double就行了粥脚。
不過,要說明一下的是Dart中的int和double可表示的范圍并不是固定的包个,它取決于運(yùn)行Dart的平臺刷允。
字符串和數(shù)字之間的轉(zhuǎn)化:
2)布爾類型
布爾類型中,Dart提供了一個bool的類型, 取值為true和false
注意: Dart中不能判斷非0即真, 或者非空即真
Dart的類型安全性意味著您不能使用if(非booleanvalue)或assert(非booleanvalue)之類的代碼。
3)字符串類型
Dart字符串是UTF-16編碼單元的序列碧囊。您可以使用單引號或雙引號創(chuàng)建一個字符串:
可以使用三個單引號或者雙引號表示多行字符串:
字符串和其他變量或表達(dá)式拼接: 使用${expression}, 如果表達(dá)式是一個標(biāo)識符, 那么{}可以省略
4)集合類型
集合類型的定義:對于集合類型树灶,Dart則內(nèi)置了最常用的三種:List / Set / Map。
其中糯而,List可以這樣來定義:
其中天通,set可以這樣來定義:
其實(shí),也就是把[]換成{}就好了熄驼。
Set和List最大的兩個不同就是:Set是無序的像寒,并且元素是不重復(fù)的。
最后瓜贾,Map是我們常說的字典類型诺祸,它的定義是這樣的:
集合的常見操作
第一類,是所有集合都支持的獲取長度的屬性length:
// 獲取集合的長度
print(letters.length);
print(lettersSet.length);
print(infoMap1.length);
第二類, 是添加/刪除/包含操作祭芦。并且筷笨,對List來說,由于元素是有序的龟劲,它還提供了一個刪除指定索引位置上元素的方法胃夏。
第三類,是Map的操作昌跌。由于它有key和value仰禀,因此無論是讀取值,還是操作蚕愤,都要明確是基于key的悼瘾,還是基于value的,或者是基于key/value對的审胸。