【发布时间】:2019-06-19 13:59:21
【问题描述】:
我想通过调用具有不同数量参数的构造函数来创建不同的对象。我怎样才能在 Dart 中实现这一点?
class A{
String b,c,d;
A(this.b,this.c)
A(this.b,this.c,this.d)
}
【问题讨论】:
我想通过调用具有不同数量参数的构造函数来创建不同的对象。我怎样才能在 Dart 中实现这一点?
class A{
String b,c,d;
A(this.b,this.c)
A(this.b,this.c,this.d)
}
【问题讨论】:
见Constructor section of Tour of Dart。
Dart 基本上不支持方法/构造函数重载。然而 Dart 允许命名构造函数和可选参数。
在您的情况下,您可以:
class A{
String b,c,d;
/// with d optional
A(this.b, this.c, [this.d]);
/// named constructor with only b and c
A.c1(this.b, this.c);
/// named constructor with b c and d
A.c2(this.b, this.c, this.d);
}
【讨论】:
您可以使用factory constructors
class A{
String b,c,d;
A(this.b,this.c,this.d)
factory A.fromBC(String b, String c) => A(b, c, "");
}
【讨论】:
为了清楚起见,您可以使用命名构造函数来为一个类实现多个构造函数。
class A{
String b,c,d;
// A(); //default constructor no need to write it
A(this.b,this.c); //constructor #1
A.namedConstructor(this.b,this.c,this.d); //another constructor #2
}
【讨论】:
A();被dart初始化为默认值。不需要初始化它。谢谢...