Dart: Structured web apps [4] 演算子オーバーロード

Dartでは演算子オーバーロードがサポートされています。

Sampleクラスのオブジェクトに対する”+”は、Sample.v の値を足し合わせるという処理にしてあります。operatorキーワードを使って演算子として定義しています。

class Sample {
  int v;
  Sample(this.v);
  Sample operator +(Sample o) {
    return new Sample(this.v + o.v);
  }
}

void main() {
  Sample sample1 = new Sample(1);
  Sample sample2 = new Sample(3);
  print("sample1.v = ${sample1.v}");
  print("sample2.v = ${sample2.v}");
  Sample sample3 = sample1 + sample2;
  print("sample3.v = ${sample3.v}");
}

実行結果は下記。sample1とsample2について、sample1+sample2とすると、各オブジェクトのvの値を足した結果(1+3の結果をvに代入されたSampleオブジェクト)が返ってきて、sample3.v の値が 4となっていることがわかります。

sample1.v = 1
sample2.v = 3
sample3.v = 4

同じタグの記事: Dart
同じタグの記事: dartlang
同じカテゴリの記事: Program