Dart 程式設計中的不可變註解


我們知道 const 關鍵字可為物件提供不變性。但是,如果我們希望整個類本質上是不可變的,該怎麼辦?

在這種情況,我們利用 Dart 庫 meta 包中存在的 immutable 註釋。

語法

import 'pacakge:meta/meta.dart';

@immutable
class User {
   String name;
}

需要注意的是,一旦我們使用 immutable 符號宣告任何類,其所有物件和物件屬性和方法也將不可變。

示例

考慮以下示例 −

 執行演示

import 'pacakge:meta/meta.dart';

@immutable
class User {
   final String name;
   User(this.name);
   User.withPrint(this.name){
      print('New user added ${this.name}');
   }
}

void main(){
   var u = User.withPrint('Mukul');
   u = {};
   print(u.name);
}

在上面的程式碼中,我們聲明瞭整個類為不可變,因此,我們透過它例項化的任何物件也將不可變。在 main 函式中,我們嘗試將不同的值分配給變數 u,這將給我們一個編譯錯誤。

輸出

Error: Overriding not allowed, as 'u' is immutable.
   u = {};
   ^^^^

更新於:2021 年 5 月 21 日

545 次瀏覽

開啟您的 事業

完成課程獲得認證

馬上開始
廣告
© . All rights reserved.