如何将 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 字段。
假设我有以下 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 字段。