Dart語言入門:3、變量和常量

一、變量

Dart語言中所有變量都是一個(gè)對象,每個(gè)對象都是一個(gè)類的實(shí)例。數(shù)字類型(numbers)、函數(shù)和 null 也是對象。所有對象都繼承自 Object 類。

1、變量聲明

聲明并初始化一個(gè)變量:

var blog = 'https://autoref.cn';

雖然Dart語言是強(qiáng)類型的,但類型注解也是可選的,像上面的代碼中,blog被推斷為String類型。變量blog包含了一個(gè)String對象的引用,值為”https://autoref.cn“。

如果一個(gè)對象沒有限制單一類型,可以指定為 Object 或 dynamic 類型,如:

dynamic blog = 'https://autoref.cn';

另外一種可選方式為明確地聲明類型:

String blog = 'https://autoref.cn';

2、變量默認(rèn)值

未初始化的變量初始值為 null ,即使變量是數(shù)字類型,因?yàn)镈art語言中所有變量都是對象。

int age;
assert(age == null);

PS:當(dāng)condition為false時(shí),assert(condition)會(huì)拋出一個(gè)異常。

二、常量

使用 final 或 const 聲明,表明變量的值不能改變。

1、final

final類型的變量只能設(shè)置一次,可以在第一次使用的時(shí)候再初始化。

// 正確
final pre = 'https://';
final String web = 'autoref.cn';

// 正確
var a = 1;
final b = a;

// 錯(cuò)誤,final 變量只能賦值一次
pre = 'game';

2、const

const是運(yùn)行時(shí)常量(const變量無疑就是final),需要在聲明時(shí)賦值初始化,在編譯時(shí)就確定值。

// 正確
const one = 100;
const double num = 3.14 * one;

// 正確
const a = 2;
const b = a;

// 錯(cuò)誤:const 變量必須初始化一個(gè)常量值
var c = 1;
const d = c;

// 錯(cuò)誤:const 變量必須初始化一個(gè)常量值
final e = 1;
const f = e;

// 錯(cuò)誤,需要在聲明時(shí)賦值初始化
const name;

const關(guān)鍵字不僅能聲明常量變量,也可以用來創(chuàng)建常量值,任何變量都可以有一個(gè)常量值:

var foo = const [];
final bar = const [];
const baz = []; // 相當(dāng)于 `const []`

對于foo,有一個(gè)常量值,但是可以改變它的值:

foo = [1, 2, 3];

對于baz,本身是常量變量,不能改變它的值。

PS1:實(shí)例變量只能是final,不能為const。final聲明的實(shí)例變量必須在構(gòu)造方法體開始前初始化。
PS2:flnal 或者 const 不能和 var 同時(shí)使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Dart重要概念:1,在變量中可以放置的所有東西都是對象,而每個(gè)對象都是類的實(shí)例。無論數(shù)字、函數(shù)、和null都是對...
    哥哥是歐巴Vitory閱讀 937評論 0 1
  • Dart 語言系列 Dart 語言入門 (一) Dart 語言入門 (二) Dart 語言入門 (三) Dart ...
    mark666閱讀 2,969評論 3 29
  • 按照慣例,先來個(gè) Hello World ?? 一、變量與常量 1.1.變量 沒有初始化的變量默認(rèn)值為 null,基...
    小哥_xiaoge閱讀 1,391評論 1 0
  • 一個(gè)最基本的 Dart 程序 下面的代碼使用了很多 Dart 中最基本的特性: 注意:無返回值的時(shí)候void寫不寫...
    Longshihua閱讀 1,117評論 0 1
  • 勤于學(xué)習(xí)他人之長的人,是謙遜的人;能夠傾聽別人意見的人,是明智的人;肯于接受批評的人,是自省的人;善于分析...
    奔跑的筆尖閱讀 351評論 2 3

友情鏈接更多精彩內(nèi)容