const final 常數

常數、變數使用時機:

  • 存儲變化的資料用變數
  • 存儲不變的資料,編譯時期就確認有值,用const 常數。
  • 存儲不變的資料,編譯時期未初始化值,執行時期才會確定有值或產生物件,用final。

const

語法

const 常數名 = 值;

const 是編譯時就要指派值,且指派後不可更改,以下編譯錯誤。

1
2
  const PI = 3.1415926;
  PI = 222;

final

語法

final 常數名 = 值 / 類別建構子/ 函式的回傳值;
final x = 1234;  // 值
final Dio dio = Dio();  // 建構子
final time = DateTime.now();  // 函式的回傳值

final 是編譯的時候可以沒有值,但執行的時候一定要有初始值。
以下的程式碼,編譯的時候DateTime.now()還未執行,還未初始化,執行後才會有值。

1
2
  final time = DateTime.now();
  print(time);

以下的語法,Dio()建構子在編譯時期,不能呼叫,執行時期才會建立物件,指派給dio變數。

1
  final Dio dio = Dio();

final 也是指派值後不可更改,即便那個值在編譯時期是還沒產生出新的值。
以下編譯錯誤。

1
2
3
  final time = DateTime.now();
  time = DateTime.now();
  print(time);

results matching ""

    No results matching ""