先說(shuō)下題外話哈,最近做了個(gè)領(lǐng)取電商平臺(tái)優(yōu)惠券的小程序议经,掃碼支持下哈~
image
官網(wǎng)
核心概念
- 一切能賦給變量的都是對(duì)象,每個(gè)對(duì)象都是一個(gè)類的實(shí)例。數(shù)字煞肾、方法咧织、null 都是對(duì)象,所有的對(duì)象都是繼承自 Objet 類籍救。
- 強(qiáng)類型語(yǔ)言习绢,但是具備類型推斷的能力。如果想明確說(shuō)明變量類型不確定钧忽,則可以定義為 dynamic 類型毯炮。
- 支持泛型
- 支持頂級(jí)方法,以及類耸黑、實(shí)例方法桃煎,也可以在方法中創(chuàng)建方法
- 支持頂級(jí)變量,以及類大刊、實(shí)例變量
- 沒(méi)有 public为迈、protected、private關(guān)鍵字缺菌,以下劃線(_)開(kāi)頭的標(biāo)識(shí)符表示私有葫辐。
- 標(biāo)識(shí)符以字母或者下劃線開(kāi)頭
- 支持表達(dá)式(有 runtime values,如 condition 伴郁? value1 : value2)和語(yǔ)句(沒(méi)有耿战,例如 if-else statement)。語(yǔ)句包含一個(gè)或多個(gè)表達(dá)式焊傅,表達(dá)式不能包含語(yǔ)句剂陡。
- dart工具可以報(bào)告 warnings 和 errors(compile-time error 或者 run-time error)。
關(guān)鍵字
參考官網(wǎng)
變量
- 類型推斷方式
var name = 'bob';
- 動(dòng)態(tài)類型變量
dynamic name = 'bob';
- 靜態(tài)類型變量
String name = 'bob';
默認(rèn)值
未初始化的變量默認(rèn)值未 null 狐胎,即使時(shí)數(shù)字類型的變量未初始化鸭栖,默認(rèn)值也是 null ,因?yàn)樗心苜x值給變量的都是對(duì)象握巢。
int lineCount;
assert(lineCount == null);//在生產(chǎn)模式下會(huì)被自動(dòng)忽略晕鹊,在開(kāi)發(fā)模式下如果不滿足條件會(huì)拋出異常
Final 和 const
和 java 類似,定義常量暴浦,final 修飾的變量只可以賦值一次溅话,const 修飾的變量是編譯時(shí)常量,const含有final的作用歌焦。
實(shí)例變量可以用final修飾公荧,但是不能用const修飾,并且必須在構(gòu)造器方法體執(zhí)行之前使用構(gòu)造參數(shù)進(jìn)行初始化
類級(jí)別的常量可以用 static const 修飾同规。
const 不僅可以用來(lái)聲明常量循狰,還可以用來(lái)創(chuàng)建常量窟社,聲明創(chuàng)建常量的構(gòu)造器。任何變量都可以被常量值賦值绪钥。