Dart語言學習 二 Dart的常量和變數

2022-02-06 04:47:58 字數 2058 閱讀 1062

dart是乙個強大的指令碼類語言,可以不預先定義變數型別 ,自動會型別推導

dart中定義變數可以通過var關鍵字可以通過型別來申明變數

var str='

this is dart var';

string str='

this is dart var';

int str=123;

注意:var 後就不要寫型別,寫了型別不要var;兩者都寫var aint = 5; 會報錯
var

a; print(a);

a = 10

; print(a);

a = '

hello dart';

print(a);

輸出:

null

10hello dart

final 和 const修飾符用來修飾常量

const值不變 一開始就得賦值

final 可以開始不賦值 只能賦一次 ;

而final不僅有const的編譯時常量的特性,最重要的它是執行時常量,並且final是惰性初始化,即在執行時第一次使用前才初始化

永遠不改量的量,請使用final或const修飾它,而不是使用var或其他變數型別。

3.1 使用final宣告乙個只能賦值一次的變數(可以開始不賦值)

3.2 使用const宣告常量 使用const宣告的必須是編譯器常量 (一開始就要賦值)

: 【編譯期】確定【變數型別】

dynamic : 【執行期】確定【變數型別】

bool

intdouble

string

list

map注意:1.所有未初始化的變數的初始值為null。這是因為dart將所有值都視為物件

2.var實際上是編譯期拋給我們的「語法糖」,一旦被編譯,

編譯期會自動匹配var 變數的實際型別,並用實際型別來替換該變數的申明,

這看上去就好像我們在編碼的時候是用實際型別進行申明的。

而dynamic被編譯後,實際是乙個 object型別,

只不過編譯器會對dynamic型別進行特殊處理,

讓它在編譯期間不進行任何的型別檢查,而是將型別檢查放到了執行期。

main()

final     :【執行期】確定【常量值】

const :【編譯期】確定【常量值】

注意:

1.final 不必須初始化,只能賦值一次,且不能修改值,賦值可以是常量也可以是變數。

const必須初始化,只能賦值一次,且不能修改值,賦值必須是常量。

2.const必須根據可在編譯時計算的資料建立它們。

const物件無法訪問執行時需要計算的任何內容。

1+2是乙個合法的const表示式,但new datetime.now()不是(合法的const表示式)

3.使用const關鍵字宣告的變數是隱式final的。

可以把const 常量賦給 final 變數,反過來不可以。

4.final和const可以與變數的資料型別一起使用,也可以與 var 關鍵字一起使用。

1

.變數名稱必須由數字、字母、下劃線和美元符($)組成。

2.注意:識別符號開頭不能是數字

3.識別符號不能是保留字和關鍵字。

4.變數的名字是區分大小寫的如: age和age是不同的變數。在實際的運用中,也建議,不要用乙個單詞大小寫區分兩個變數。

5、識別符號(變數名稱)一定要見名思意 :變數名稱建議用名詞,方法名稱建議用動詞

dart學習系列文章:

Dart語言學習 十四 Dart泛型

什麼是泛型?通俗理解 泛型就是解決 類 介面 方法的復用性 以及對不特定資料型別的支援 型別校驗 如下 只能返回string型別的資料string getdata string value 如下 同時支援返回 string型別 和int型別 但是這麼些造成 冗餘string getdata1 str...

Dart語言學習 三 Dart數值型

數值型有num,int,double num a 10 a 12.5 print a print a.runtimetype int b 20 b 20.5 print b print b.runtimetype double c 10.5 c 30 print c print c.runtimet...

dart語言學習(十八) 匿名方法

引數1,引數2,可賦值給變數,通過變數進行呼叫 可在其他方法中直接呼叫或傳遞給其他方法 void main listargs func var func1 str func1 huangxiaoguo 通過 進行呼叫,不推薦使用 匿名方法傳參 var list2 h e l l o print li...