如何将 getter 添加到 Dart class 并在其构造函数上使用命名参数?

How can I add a getter to a Dart class with a named parameter on its constructor?

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

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

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

如何为字段添加 getter?我正在尝试以下方式:

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

TestClass({this.someValue});

没有该名称的成员变量。您是说 _someValue 吗?

命名参数不能是私有的,但是您可以使用命名参数、私有成员和初始化程序来获得您想要的结果。你可以在没有初始化器的构造函数体中做同样的事情,但是 _someValue 不能是最终的。

class TestClass {
  final int _someValue;

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

  int get someValue => _someValue;
}

但是,在 Dart 中这样做的价值很小。没有相应 setter 的 getter 在语义上等同于 final 字段。