變量
例子:
var name = 'Bob';
name變量的類(lèi)型被推斷為String,但是可以通過(guò)指定它來(lái)更改該類(lèi)型矾麻。如果對(duì)象不限于單一類(lèi)型,請(qǐng)按照設(shè)計(jì)指導(dǎo)原則指定對(duì)象或動(dòng)態(tài)類(lèi)型。
另一種選擇是顯式聲明要推斷的類(lèi)型:
String name = 'Bob';
默認(rèn)值
未初始化的變量的初始值為null主巍,即使是數(shù)字類(lèi)型的變量,最初也是null挪凑,因?yàn)閿?shù)字在Dart中都是對(duì)象孕索。
int lineCount;
assert(lineCount == null);
常量
如果定義一個(gè)常量,請(qǐng)使用final或const躏碳。最終變量只能設(shè)置一次;常量變量是編譯時(shí)常數(shù)搞旭。(Const變量是隱式的final。)最終的頂級(jí)或類(lèi)變量在第一次使用時(shí)被初始化菇绵。
final name = 'Bob';
final String nickname = 'Bobby';
const關(guān)鍵字不僅僅用于聲明常量變量肄渗。您還可以使用它來(lái)創(chuàng)建常量值,以及聲明創(chuàng)建常量值的構(gòu)造函數(shù)咬最。任何變量都可以有一個(gè)常數(shù)翎嫡。
var foo = const [];
final bar = const [];
const baz = []; // 等于 `const []`
//baz = [42]; // 錯(cuò)誤: 常量變量不能賦值。
//const aconstList = [1,2,3]; 報(bào)錯(cuò) expression is not a valid compile-time constant