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 = {};
^^^^
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP