在 Dart 中混合初始化器和构造函数体
Mixing Up an Initializer and a Constructor Body in Dart
我知道您可以在 class 中初始化 final
变量,例如:
class A {
final num x;
final num y;
final num d;
A(this.x, this.y):
d = sqrt(pow(x, 2) + pow(y, 2));
}
您可以像这样在构造函数中创建常规变量:
class A {
String z;
A(){
z = 'hello';
}
}
但是如何将两者混合?可能吗?语法是什么?
只需在初始化程序之后继续使用构造函数,但是,由于您要使用大括号 ({}
),因此不应使用分号 (;
) :
class A {
final num x;
final num y;
final num d;
String z;
A(this.x, this.y)
: d = sqrt(pow(x, 2) + pow(y, 2))
{
z = 'hello';
}
}
我知道您可以在 class 中初始化 final
变量,例如:
class A {
final num x;
final num y;
final num d;
A(this.x, this.y):
d = sqrt(pow(x, 2) + pow(y, 2));
}
您可以像这样在构造函数中创建常规变量:
class A {
String z;
A(){
z = 'hello';
}
}
但是如何将两者混合?可能吗?语法是什么?
只需在初始化程序之后继续使用构造函数,但是,由于您要使用大括号 ({}
),因此不应使用分号 (;
) :
class A {
final num x;
final num y;
final num d;
String z;
A(this.x, this.y)
: d = sqrt(pow(x, 2) + pow(y, 2))
{
z = 'hello';
}
}