Kod*_*rth 0 constructor dart flutter
void main() {
Car c1 = new Car('E1001');
}
class Car {
String engine;
Car(String engine) {
this.engine = engine;
print("The engine is : ${engine}");
}
}
Run Code Online (Sandbox Code Playgroud)
在飞镖零安全功能中,
要么使引擎变量可以为空?
,
class Car {
String? engine;
Car(String engine){
this.engine = engine;
print("The engine is : ${engine}");
}
}
Run Code Online (Sandbox Code Playgroud)
或者添加late
关键字来懒惰地初始化它,
class Car {
late String engine;
Car(String engine){
this.engine = engine;
print("The engine is : ${engine}");
}
}
Run Code Online (Sandbox Code Playgroud)
或者在构造函数的初始化块中初始化变量。
class Car {
String engine;
Car(String engine) : engine = engine {
print("The engine is : ${engine}");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
Ravi Setva 接受的答案有助于解决这个问题,但这里解释了为什么方法 1 和 2 有效:
null
被初始化。null
通过标记在整个程序生命周期中不能为 null 的内容,这具有编译器优化的优点。然而,using?
允许null
s 被允许使用。因此,我们应该使用 Dart 没有强加给我们的这一原则。late
关键字来实现的。这样做有许多复杂的原因,其中最简单的原因是在变量声明期间防止繁重的操作,以简化和优化性能,并在以后实际需要时标记这些操作。 归档时间: |
|
查看次数: |
2621 次 |
最近记录: |