【Flutter 1-7】Flutter教程Dart語言——變量

作者 | 弗拉德
來源 | 弗拉德(公眾號:fulade_me)

2011年10月10日的GOTO大會上,谷歌的兩位工程師發(fā)布了“Dart”;Dart是一種全新的編程語言,旨在幫助開發(fā)者構(gòu)建Web應用程序恨旱。Dart 1.0于2013年11月14日發(fā)布。我們?nèi)粘i_發(fā)Flutter使用的就是Dart語言坝疼,所以我們有必要了解一下Dart語言的使用方法搜贤。

文章首發(fā)地址

類型安全的語言

Dart 語言是類型安全的語言,但是由于其支持類型推斷钝凶,因此大多數(shù)變量不需要顯式地指定類型:
例如

/// 初始化一個字符串
var name = 'Fulade';
/// Int類型
var year = 1995;
/// 浮點數(shù)類型
var antennaDiameter = 3.7;
/// 數(shù)組
var list = ['Java', 'Python', 'C++', 'C'];
/// 字典類型
var image = {
  'tags': ['土星'],
  'url': '//path/to/saturn.jpg'
};

變量

下面的示例代碼將創(chuàng)建一個變量并將其初始化:

var name = 'Fulade';

變量僅存儲對象的引用仪芒。
這里名為 name 的變量存儲了一個 String 類型對象的引用,'Fulade' 則是該對象的值耕陷。
name 變量的類型被推斷為 String掂名,但是你可以為其指定類型。
如果一個對象的引用不局限于單一的類型哟沫,可以將其指定為 Objectdynamic 類型饺蔑。

dynamic name = 'Bob';

除此之外你也可以指定類型:

String name = 'Bob';

默認值

在 Dart 中,未初始化的變量擁有一個默認的初始化值:null嗜诀。即便數(shù)字也是如此膀钠,因為在 Dart 中一切皆為對象,數(shù)字也不例外裹虫。

int lineCount;
if(lineCount == null) {
    print("line is null");
}
Final 和 Const

如果你不想更改一個變量,可以使用關鍵字 final 或者 const 修飾變量融击,這兩個關鍵字可以替代 var 關鍵字或者加在一個具體的類型前筑公。一個 final 變量只可以被賦值一次;一個 const 變量是一個編譯時常量(const 變量同時也是 final)尊浪。被final修飾的變量在第一次使用的時候被初始化匣屡。
下面的示例中我們創(chuàng)建并設置兩個 final 變量:

final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';

你不能修改一個 final 變量的值:

name = 'Alice'; // Error: a final variable can only be set once.

使用關鍵字 const 修飾變量表示該變量為 編譯時常量。如果使用 const 修飾類中的變量拇涤,則必須加上 static 關鍵字捣作,即 static const(注意:順序不能顛倒。在聲明 const 變量時可以直接為其賦值鹅士,也可以使用其它的 const 變量為其賦值:

const bar = 1000000; // 直接賦值 [Unit of pressure (dynes/cm2)]
const double atm = 1.01325 * bar; // 利用其它 const 變量賦值 (Standard atmosphere)

const 關鍵字不僅僅可以用來定義常量券躁,還可以用來創(chuàng)建常量值,該常量值可以賦予給任何變量。你也可以將構(gòu)造函數(shù)聲明為 const 的也拜,這種類型的構(gòu)造函數(shù)創(chuàng)建的對象是不可改變的以舒。

var foo = const [];
final bar = const [];
const baz = []; // 相當于 `const []` (Equivalent to `const []`)

如果使用初始化表達式為常量賦值可以省略掉關鍵字 const,比如上面的常量 baz 的賦值就省略掉了 const沒有使用 finalconst 修飾的變量的值是可以被更改的慢哈,即使這些變量之前引用過 const 的值蔓钟。

foo = [1, 2, 3]; // foo 的值之前為 const [] (Was const [])

常量的值不可以被修改:

baz = [42]; // 報錯:常量不可以被賦值。(Error: Constant variables can't be assigned a value.)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卵贱,一起剝皮案震驚了整個濱河市滥沫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌键俱,老刑警劉巖兰绣,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異方妖,居然都是意外死亡狭魂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門党觅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雌澄,“玉大人,你說我怎么就攤上這事杯瞻「湮” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵魁莉,是天一觀的道長睬涧。 經(jīng)常有香客問我,道長旗唁,這世上最難降的妖魔是什么畦浓? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮检疫,結(jié)果婚禮上讶请,老公的妹妹穿的比我還像新娘。我一直安慰自己屎媳,他們只是感情好夺溢,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烛谊,像睡著了一般风响。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丹禀,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天状勤,我揣著相機與錄音鞋怀,去河邊找鬼。 笑死荧降,一個胖子當著我的面吹牛接箫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播朵诫,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼辛友,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了剪返?” 一聲冷哼從身側(cè)響起废累,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脱盲,沒想到半個月后邑滨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡钱反,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年掖看,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片面哥。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡哎壳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尚卫,到底是詐尸還是另有隱情归榕,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布吱涉,位于F島的核電站刹泄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怎爵。R本人自食惡果不足惜特石,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳖链。 院中可真熱鬧县匠,春花似錦、人聲如沸撒轮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽题山。三九已至,卻和暖如春故痊,著一層夾襖步出監(jiān)牢的瞬間顶瞳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慨菱,地道東北人焰络。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像符喝,于是被迫代替她去往敵國和親闪彼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容