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
- クラスベースのオブジェクト指向プログラミング言語の基礎を学ぶには … 改訂版 基礎Java(CD-ROM付) (IMPRESS KISO SERIES)
- クラスベースのオブジェクト指向プログラミング言語を学ぶには … プログラミング言語Java (The Java Series)
- 関数型プログラミング言語を学ぶには … Scalaスケーラブルプログラミング第2版
- プログラミング言語の理論を学には … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)