我曾经在Kotlin编程很长时间了。 我对Dart编程很陌生。
所以我想Dart编程中需要getter和setter。 (如果getter和setter没有逻辑,则为纯getter,setter)
我的IDE是VSCode。当我尝试查看设置了特定变量的位置并获取=>时,我使用了“查找所有引用”。此功能显示设置和获取的混合。 因此,我认真考虑将每个字段设置为setter和getter。
当我使用Kotlin时,该语言会自动生成getter和setter。 IDE为我提供了get / set的单独参考。 对我来说,使每个吸气剂塞特器很烦人。
有什么好方法可以用IDE查看set / get的单独引用吗? 还是有其他原因使用getter和setter? (如果getter和setter没有逻辑,则为纯getter,setter)
class DisplayConstant {
double statusbarHeight = 0;
double devicePixelRatio = 1;
}
vs
class DisplayConstant {
double _statusbarHeight = 0;
double _devicePixelRatio = 1;
double get statusbarHeight => _statusbarHeight;
set statusbarHeight(double statusbarHeight) =>
_statusbarHeight = statusbarHeight;
double get devicePixelRatio => _devicePixelRatio;
set devicePixelRatio(double devicePixelRatio) =>
_devicePixelRatio = devicePixelRatio;
}
答案 0 :(得分:5)
使用getter / setter是可选的。在某些情况下可能会有帮助,例如,当您需要在获取数据时添加其他逻辑时。
class DisplayConstant {
//make your variables private using _ at the beginning
double _factor = 0.5;
double _statusbarHeight = 0;
double _devicePixelRatio = 1;
double get statusbarHeight => _statusbarHeight * _factor;
double get devicePixelRatio => _devicePixelRatio * _factor;
set statusbarHeight(double statusbarHeight) => _statusbarHeight = statusbarHeight;
set devicePixelRatio(double devicePixelRatio) =>_devicePixelRatio = devicePixelRatio;
}
使用setter和getter对类的用户透明。这样一来,您就可以随着时间的推移不断发展自己的API,而不会破坏现有的用户,就像这样:
final display = DisplayConstant();
//set your data
display.statusbarHeight = 20;
display.devicePixelRatio = 0.5;
//get your data
print(display.statusbarHeight);
print(display.devicePixelRatio);
如果您不打算在获取属性时计划添加一些逻辑,则可以避免获取/设置并直接调用属性。
您可以在此链接中找到更多信息:http://dartdoc.takyam.com/dart-tips/dart-tips-ep-10.html