小编Ban*_*Nam的帖子

Dart编程中需要getter和setter吗?

我曾经在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)

dart flutter

3
推荐指数
1
解决办法
100
查看次数

我将如何用惯用的 Kotlin 写这个?

我有一些代码:

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 写这个?

kotlin

0
推荐指数
1
解决办法
690
查看次数

标签 统计

dart ×1

flutter ×1

kotlin ×1