當我在 open resource flutter 專案中尋找代碼時,一個用戶使用了這樣的模型。我在這里想不通。不需要使用 getter 花括號術語有什么意義:
_email = email;
_password = password;
class LoginModel {
String? _email;
String? _password;
LoginModel({
String? email,
String? password,
}) {
_email = email;
_password = password;
}
Map<String, dynamic> toJson() {
var map = <String, dynamic>{};
map["email"] = _email;
map["password"] = _password;
return map;
}
set email(String value) => _email = value;
set password(String value) => _password = value;
}
uj5u.com熱心網友回復:
實際上,您有幾個選擇:
除了將類引數設為私有和命名之外,您還可以將它們設為私有并這樣做(如果您希望它們是私有的,則無法命名它們,因為其他類將無法看到名稱) :
LoginModel( this._email, this._password, )您可以通過向它們添加所需的標記并洗掉私有指示符來使它們命名和實體化類所必需
_,如下所示:LoginModel({ required this.email, required this.password, })或者你可以讓它們命名而不是必需的(因為它們可以為空):
LoginModel({ this.email, this.password, })
uj5u.com熱心網友回復:
我強烈建議您觀看有關 dart 的一些語言概述或查看此處的檔案。但是要回答您的問題:
- 下劃線表明變數是私有的。
- 花括號顯示可選引數。因此,初始化登錄模型的人可以執行以下任何操作:
LoginModel()
LoginModel(email: "")
LoginModel(password: "")
LoginModel(email: "", password: "")
非可選引數在花括號外初始化。如果我想要電子郵件而不是密碼,我可以執行以下操作:
LoginModel(String email, {String? password})
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399070.html
