先說下題外話哈,最近做了個(gè)領(lǐng)取電商平臺(tái)優(yōu)惠券的小程序,掃碼支持下哈~
image
官網(wǎng)
核心概念
- 一切能賦給變量的都是對(duì)象,每個(gè)對(duì)象都是一個(gè)類的實(shí)例。數(shù)字、方法、null 都是對(duì)象,所有的對(duì)象都是繼承自 Objet 類。
- 強(qiáng)類型語(yǔ)言,但是具備類型推斷的能力。如果想明確說明變量類型不確定,則可以定義為 dynamic 類型。
- 支持泛型
- 支持頂級(jí)方法,以及類、實(shí)例方法,也可以在方法中創(chuàng)建方法
- 支持頂級(jí)變量,以及類、實(shí)例變量
- 沒有 public、protected、private關(guān)鍵字,以下劃線(_)開頭的標(biāo)識(shí)符表示私有。
- 標(biāo)識(shí)符以字母或者下劃線開頭
- 支持表達(dá)式(有 runtime values,如 condition ? value1 : value2)和語(yǔ)句(沒有,例如 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)忽略,在開發(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 不僅可以用來聲明常量,還可以用來創(chuàng)建常量,聲明創(chuàng)建常量的構(gòu)造器。任何變量都可以被常量值賦值。