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

Mar*_*rcG 2 getter named-parameters dart

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

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

void someMethod() {
  TestClass testClass = new TestClass(someValue: 10);
  print(testClass.someValue);
}
Run Code Online (Sandbox Code Playgroud)

如何为该字段添加吸气剂?我正在尝试以下内容:

class TestClass {
  final int _someValue;
  TestClass({this.someValue});
  int get someValue => _someValue+2;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*ams 5

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

class TestClass {
  final int _someValue;

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

  int get someValue => _someValue;
}
Run Code Online (Sandbox Code Playgroud)

然而,在 Dart 中这样做没有什么价值。没有相应 setter 的 getter 在语义上等同于 Final 字段。