我曾经在Kotlin编程很长时间了。我在Dart编程中很新。
因此,我想知道Dart编程中是否需要getter和setter。(如果getter和setter没有逻辑,则为纯getter,setter)
我的IDE是VSCode。当我尝试查看设置了特定变量的位置并获取=>时,我使用了“查找所有引用”。此功能显示设置和获取的混合。因此,我认真考虑将每个字段设置为setter和getter。
当我使用Kotlin时,该语言会自动生成getter和setter。IDE为我提供了get / set的单独参考。对我来说,使每个吸气剂塞特器很烦人。
用IDE查看设置/获取的单独引用的任何好方法吗?还是有其他原因使用getter和setter?(如果getter和setter没有逻辑,则为纯getter,setter)
class DisplayConstant {
double statusbarHeight = 0;
double devicePixelRatio = 1;
}
Run Code Online (Sandbox Code Playgroud)
与
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;
}
Run Code Online (Sandbox Code Playgroud) 我有一些代码:
private fun getTouchX(): Int {
arguments ?: return centerX()
return if (arguments.containsKey(KEY_DOWN_X)) {
arguments.getInt(KEY_DOWN_X)
} else {
centerX()
}
}
private fun centerX() = (views.rootView?.width ?: 0) / 2
Run Code Online (Sandbox Code Playgroud)
我想缩短它。
在函数 getTouchX 中,有两个重复的返回条件。(这是centerX)
我试图这样做:
private fun getTouchX(): Int {
if (arguments == null || !arguments.containsKey(KEY_DOWN_X)) {
return centerX()
}
return arguments.getInt(KEY_DOWN_X)
}
Run Code Online (Sandbox Code Playgroud)
然而,它看起来更像是 Java 而不是 Kotlin。
我怎么能用惯用的 Kotlin 写这个?