Dart語言學習(二) Dart的常量和變量

1.使用var聲明變量,可賦予不一樣類型的值

2.未初始化時候,默認值未null

  var a;
  print(a);

  a = 10;
  print(a);

  a = 'Hello Dart';
  print(a);

輸出:編碼

null
10
Hello Dart

3. 使用final聲明一個只能賦值一次的變量

4. 使用const聲明常量 使用const聲明的必須是編譯器常量

5.聲明變量的方式

var      : 【編譯期】肯定【變量類型】
dynamic     : 【運行期】肯定【變量類型】
bool 
int 
double
String 
List
Map

 

注意:
1.全部未初始化的變量的初始值爲null。這是由於Dart將全部值都視爲對象
2.var其實是編譯期拋給咱們的「語法糖」,一旦被編譯,
編譯期會自動匹配var 變量的實際類型,並用實際類型來替換該變量的申明,
這看上去就好像咱們在編碼的時候是用實際類型進行申明的。
而dynamic被編譯後,實際是一個 object類型,
只不過編譯器會對dynamic類型進行特殊處理,
讓它在編譯期間不進行任何的類型檢查,而是將類型檢查放到了運行期。spa

 

main() {
  var a = 10;
  print(a);//10
//  a = "dart"; //寫法錯誤

  dynamic b = 20;
  print(b); //20
  b = "JavaScript"; //正確
  print(b); //JavaScript

  var list = new List<dynamic>();
  list.add(1);
  list.add("hello");
  print(list);//[1, hello]

}

6.聲明常量的方式

final     :【運行期】肯定【常量值】
const     :【編譯期】肯定【常量值】
注意:
1.final必須初始化,只能賦值一次,且不能修改值,賦值能夠是常量也能夠是變量。
const必須初始化,只能賦值一次,且不能修改值,賦值必須是常量。
2.const必須根據可在編譯時計算的數據建立它們。
const對象沒法訪問運行時須要計算的任何內容。
1+2是一個合法的const表達式,但new DateTime.now()不是(合法的const表達式)
3.使用const關鍵字聲明的變量是隱式final的。
能夠把const 常量賦給 final 變量,反過來不能夠。
4.final和const能夠與變量的數據類型一塊兒使用,也能夠與 var 關鍵字一塊兒使用。
相關文章
相關標籤/搜索