2 * a と書けるタイプ A を実装したいと思います。これがダーツで可能になるように、演算子をオーバーロードする方法はありますか?
1 に答える
2
(のタイプ) は、その のパラメータのみを受け入れる2 * a
ため、実行できません。定義は次のとおりです。int
2
num
operator*
num operator *(num other);
ただし、 in classを定義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 に答える