我想实现一个可以写 2 * a 的类型 A。无论如何都要重载运算符,以便在飞镖中实现这一点?
1 回答
2
你不能这样做2 * a,因为int(的类型2)只接受num它的一个参数operator*。这是定义:
num operator *(num other);
但是,您可以在类中定义一个operator*(int mult)A。这样你就可以打电话了a * 2。这是一个例子:
class A {
String s;
A(this.s);
A operator*(int mult) => new A(new List.generate(mult, (_) => s).join());
}
main() {
final result = new A('NaN') * 16;
print('${result.s} Batman');
// displays NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN Batman
}
于 2013-07-13T19:08:28.817 回答