dart - 如何向 Dart 类添加 getter,并在其构造函数上使用命名参数?

标签 dart getter named-parameters

假设我有以下 Dart 类,其构造函数中有一个命名参数:

class TestClass {
  final int someValue;
  TestClass({this.someValue});
}

void someMethod() {
  TestClass testClass = new TestClass(someValue: 10);
  print(testClass.someValue);
}

如何为该字段添加 setter/getter ?我正在尝试以下内容:

class TestClass {
  final int _someValue;
  TestClass({this.someValue});
  int get someValue => _someValue+2;
}

最佳答案

命名参数不能是私有(private)的,但您可以使用命名参数、私有(private)成员和初始值设定项获得所需的结果。您可以在没有初始化程序的构造函数主体中执行相同的操作,但 _someValue 不能是最终的。

class TestClass {
  final int _someValue;

  TestClass({int someValue}) : _someValue = someValue;

  int get someValue => _someValue;
}

但是,在 Dart 中这样做没有什么值(value)。没有相应 setter 的 getter 在语义上等同于 Final 字段。

关于dart - 如何向 Dart 类添加 getter,并在其构造函数上使用命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49603150/

相关文章:

C++ 类 getter 在 main 中不返回任何值,但在类中返回任何值?

c# - 在C#中将lambda函数作为命名参数传递

Flutter for Web : webdev serve throws error: webdev could not find pubspec. yaml in "C:\...."

flutter - 如何从带有 flutter 的TimeOfDay以AM或PM格式显示时间?

flutter - 如何监听提供者类中的变量变化?

dart - 如何从树中删除小部件

java - 在类里面使用 getter/setter - 好的还是坏的做法?

java - 链接方法调用还是引入中间变量更好?

ruby - 何时在 Ruby 中使用关键字参数或命名参数

c++ - 如何防止以错误的顺序传递函数参数?