Dart 程式設計 - 變數



變數是“記憶體中命名的空間”,用於儲存值。換句話說,它充當程式中值的容器。變數名稱稱為識別符號。以下是識別符號的命名規則:

  • 識別符號不能是關鍵字。

  • 識別符號可以包含字母和數字。

  • 識別符號不能包含空格和特殊字元,除了下劃線 (_) 和美元符號 ($) 之外。

  • 變數名不能以數字開頭。

型別語法

在使用變數之前必須先宣告它。Dart 使用 var 關鍵字來實現這一點。宣告變數的語法如下所示:

var name = 'Smith';

Dart 中的所有變數都儲存對值的引用,而不是包含值本身。名為 name 的變數包含對值為“Smith”的 String 物件的引用。

Type Syntax

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

finalconst 關鍵字用於宣告常量。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 關鍵字聲明瞭兩個常量piareaarea 變數的值是編譯時常量。

輸出

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)
廣告