如果我读到setter和getter必须在Dart中进行显式开发,则仅当您想做的事情不仅仅是检索那些值时。但是,如果我有私有变量,例如:
Class User {
User _user;
String _password;
}
如何访问这些私有变量? 即使我实现了设置密码,例如
set password(String value) => _password = value;
这当然会给我一个“错误”。
答案 0 :(得分:2)
如果您想让公共获取者/设定者拥有私有变量,那有什么意义呢?
只需将其设置为公共变量即可。
如果您坚持拥有一个具有公共访问权限的私有变量,那么您仍然需要添加getter和setter。
答案 1 :(得分:0)
由于某些原因导入了私有变量,如果有条件地设置或获取Class属性值,则setter和getter对于私有变量很重要。下面给出的示例:
class User {
int _id;
String _firstName;
String _password;
int get id => _id;
set id(int value) {
_id = value;
}
String get firstName => _firstName;
set firstName(String value) {
if(value.length > 7)
_firstName = value;
}
String get password => _password;
set password(String value) {
if(some condition against this value like password)
_password = value;
}
}
注意:您可以像上面示例中给出的setter一样在getter中设置条件。