
- Dart 程式設計教程
- Dart 程式設計 - 首頁
- Dart 程式設計 - 概述
- Dart 程式設計 - 環境
- Dart 程式設計 - 語法
- Dart 程式設計 - 資料型別
- Dart 程式設計 - 變數
- Dart 程式設計 - 運算子
- Dart 程式設計 - 迴圈
- Dart 程式設計 - 決策
- Dart 程式設計 - 數字
- Dart 程式設計 - 字串
- Dart 程式設計 - 布林值
- Dart 程式設計 - 列表
- Dart 程式設計 - 列表
- Dart 程式設計 - 對映
- Dart 程式設計 - 符號
- Dart 程式設計 - Rune
- Dart 程式設計 - 列舉
- Dart 程式設計 - 函式
- Dart 程式設計 - 介面
- Dart 程式設計 - 類
- Dart 程式設計 - 物件
- Dart 程式設計 - 集合
- Dart 程式設計 - 泛型
- Dart 程式設計 - 包
- Dart 程式設計 - 異常
- Dart 程式設計 - 除錯
- Dart 程式設計 - Typedef
- Dart 程式設計 - 庫
- Dart 程式設計 - 非同步
- Dart 程式設計 - 併發
- Dart 程式設計 - 單元測試
- Dart 程式設計 - HTML DOM
- Dart 程式設計有用資源
- Dart 程式設計 - 快速指南
- Dart 程式設計 - 資源
- Dart 程式設計 - 討論
Dart 程式設計 - 變數
變數是“記憶體中命名的空間”,用於儲存值。換句話說,它充當程式中值的容器。變數名稱稱為識別符號。以下是識別符號的命名規則:
識別符號不能是關鍵字。
識別符號可以包含字母和數字。
識別符號不能包含空格和特殊字元,除了下劃線 (_) 和美元符號 ($) 之外。
變數名不能以數字開頭。
型別語法
在使用變數之前必須先宣告它。Dart 使用 var 關鍵字來實現這一點。宣告變數的語法如下所示:
var name = 'Smith';
Dart 中的所有變數都儲存對值的引用,而不是包含值本身。名為 name 的變數包含對值為“Smith”的 String 物件的引用。

Dart 透過在變數名前新增資料型別來支援**型別檢查**。型別檢查確保變數僅儲存特定於資料型別的資料。其語法如下所示:
String name = 'Smith'; int num = 10;
請考慮以下示例:
void main() { String name = 1; }
上面的程式碼段將導致警告,因為分配給變數的值與變數的資料型別不匹配。
輸出
Warning: A value of type 'String' cannot be assigned to a variable of type 'int'
所有未初始化的變數的初始值為 null。這是因為 Dart 將所有值都視為物件。以下示例說明了這一點:
void main() { int num; print(num); }
輸出
Null
dynamic 關鍵字
未宣告靜態型別的變數隱式宣告為 dynamic。變數也可以使用 dynamic 關鍵字代替 var 關鍵字進行宣告。
以下示例說明了這一點。
void main() { dynamic x = "tom"; print(x); }
輸出
tom
final 和 const
final 和 const 關鍵字用於宣告常量。Dart 阻止修改使用 final 或 const 關鍵字宣告的變數的值。這些關鍵字可以與變數的資料型別一起使用,或者代替var 關鍵字。
const 關鍵字用於表示編譯時常量。使用const 關鍵字宣告的變數隱式為 final。
語法:final 關鍵字
final variable_name
或
final data_type variable_name
語法:const 關鍵字
const variable_name
或
const data_type variable_name
示例 – final 關鍵字
void main() { final val1 = 12; print(val1); }
輸出
12
示例 – const 關鍵字
void main() { const pi = 3.14; const area = pi*12*12; print("The output is ${area}"); }
上面的示例使用const 關鍵字聲明瞭兩個常量pi 和area。area 變數的值是編譯時常量。
輸出
The output is 452.15999999999997
注意 - 只有const 變數才能用於計算編譯時常量。編譯時常量是在編譯時確定其值的常量。
示例
如果嘗試修改使用final 或 const 關鍵字宣告的變數,Dart 將丟擲異常。以下示例說明了這一點:
void main() { final v1 = 12; const v2 = 13; v2 = 12; }
上面給出的程式碼將丟擲以下錯誤作為輸出:
Unhandled exception: cannot assign to final variable 'v2='. NoSuchMethodError: cannot assign to final variable 'v2=' #0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) #1 main (file: Test.dart:5:3) #2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) #3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)