未初始化的變量值都是null
創(chuàng)新互聯(lián)建站基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供光華機(jī)房服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
var可以接受任意類型的變量,但一旦被賦值,類型就會被確定。
dynamic可以接受任意類型的變量,被賦值后,類型還可以再被賦值再改變。
final與const都可以修飾一個(gè)不可變的變量,但final變量是一個(gè)運(yùn)行時(shí)常量,在第一次使用的時(shí)候被初始化。
const變量是一個(gè)編譯時(shí)常量,在編譯的時(shí)候就被初始化了。所以,const的性能比final高。
a?.cancel():a不為空才會執(zhí)行a的cancel()方法
var i = a??"a是空":a是空時(shí),將a賦值為字符串"a是空"
k??="1":如果k之前沒有賦值,則會被賦值為“1”,如果之前有值,這句話就無效。
例如有一個(gè)函數(shù):String say(String from, String msg, [String device])
那么device可以傳也可以不傳值,下面兩種調(diào)用方式都是對的。
例如有一個(gè)函數(shù):void fun1({int i,int j}),
使用時(shí):fun1(i = 1)、fun1(j = 10)、fun1(i = 10,j = 20)都可以。
可選位置參數(shù)和可選命名參數(shù)都可以設(shè)置默認(rèn)參數(shù)值
例如:
void fun1({int i = 1,int j = 2})
String say(String from = "a", String msg = "b", [String device = "c"])
1、Avoid empty catch blocks.
如果try catch 中的catch沒有任何實(shí)現(xiàn)則需要把catch的e異常改為_即可消除警告
2、Prefer const with constant constructors.
意思是需要加上const常量修飾符
3、Prefer using if null operators.
發(fā)生在使用三目運(yùn)算符當(dāng)中
4、The '!' will have no effect because the receiver can't be null.
在定義空安全之后的使用中
5、Don't access members with this unless avoiding shadowing.
引用了this關(guān)鍵字
6、SizedBox for whitespace.
使用Container布局
6、Unnecessary new keyword.
創(chuàng)建布局控件時(shí)使用new關(guān)鍵字
7、Avoid using braces in interpolation when not needed.
日志輸出的時(shí)候?qū)τ趩为?dú)的變量使用了大括號
8、Use key in widget constructors.
定義的StatefulWidget 中沒有添加構(gòu)造方法
9、The method doesn't override an inherited method.
定義方法之前添加了@override
Flutter有生成構(gòu)造函數(shù)、默認(rèn)構(gòu)造函數(shù)、命名構(gòu)造函數(shù)、重定向構(gòu)造函數(shù)、常量構(gòu)造函數(shù)、工廠構(gòu)造函數(shù)
生成構(gòu)造函數(shù)是最常見的構(gòu)造函數(shù),即生成實(shí)體類對象。
如果未聲明構(gòu)造函數(shù),則會提供默認(rèn)構(gòu)造函數(shù)。 默認(rèn)構(gòu)造函數(shù)沒有參數(shù),并調(diào)用父類無參數(shù)構(gòu)造函數(shù)。
默認(rèn)情況下,子類中的構(gòu)造函數(shù)調(diào)用父類的未命名無參數(shù)構(gòu)造函數(shù)。 父類的構(gòu)造函數(shù)在子類構(gòu)造函數(shù)體的開頭被調(diào)用。 如果還使用初始化了列表,則會在調(diào)用父類構(gòu)造函數(shù)之前執(zhí)行。 執(zhí)行順序如下:
如果父類沒有未命名的無參數(shù)構(gòu)造函數(shù),則必須手動(dòng)調(diào)用父類中的一個(gè)構(gòu)造函數(shù)。 在子類的構(gòu)造函數(shù)體之后用冒號(:)指定父類構(gòu)造函數(shù)
當(dāng)需要定義一個(gè)有特別含義的構(gòu)造函數(shù)的時(shí)候,可以通過命名構(gòu)造 形式:構(gòu)造函數(shù).XXX來命名構(gòu)造函數(shù)
有時(shí)構(gòu)造函數(shù)需要重定向到同一個(gè)類中的另一個(gè)構(gòu)造函數(shù),在冒號后面用this:
如果你的類需要成為永遠(yuǎn)不會更改的對象,則可以使這些對象成為編譯時(shí)常量。 定義const構(gòu)造函數(shù)要確保所有實(shí)例變量都是final。
不用直接創(chuàng)建對象(可以通過調(diào)用其他構(gòu)造函數(shù)創(chuàng)建)