如何从 Dart 的默认构造函数中使用私有实例变量的 setter?
给定示例类:
class A {
String name;
int _age;
int get age => _age;
set age(age) {
_age = age ?? 0;
}
A(this.name, this._age);
}
Run Code Online (Sandbox Code Playgroud)
我如何使用这个构造函数来遍历该set age()函数?除了使用 a 之外还有什么办法factory吗?我想做这样的事情
A(this.name, newAge): age = newAge;
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误,迫使我只从构造函数中设置实例变量,这让我只需复制设置器:
A(this.name, newAge): _age = newAge ?? 0;
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了一些东西,或者这对于 dart 来说是不可能的?
构造函数的初始化列表只能用于初始化成员(或调用基类构造函数)。(此外,当初始化列表被执行时,this还没有生效,所以你不能访问任何成员。)
如果您想做其他类型的初始化工作,您可以在构造函数主体中进行,此时该对象被认为已充分构造为this有效:
A(this.name, int newAge) {
age = newAge;
}
Run Code Online (Sandbox Code Playgroud)
另请参阅:
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |