Dart - final variable

Dart 的 final 關鍵字可用來指定運行時常數,指定其運行時值不允許變更。


使用時只要在變數宣告前面加上 final 關鍵字即可。

1
final pi = 3.1415926;


像是下面這樣的程式:

1
2
3
4
main(){
final pi = 3.1415926;
pi = 3.14;
}


運行起來就會發生錯誤,因為透過 final 宣告的是常數,沒有 Setter 可以改變它的值。


接著來看複雜一點的例子,物件會透過建構子將值塞給 final 常數,物件初始後會嘗試變更其值。

1
2
3
4
5
6
7
8
class Person {
final String name;
Person(this.name);
}
void main() {
var person = new Person('larry');
person.name = 'larrynung';
}


運行起來一樣會出錯,因為透過 final 宣告的常數在物件初始化塞完值後就不能再去變更了。