Ruby>>>>>Javaat TECH
Ruby>>>>>Java - 暇つぶし2ch436:デフォルトの名無しさん
08/06/22 17:38:09
javaは演算子のオーバーロードが出来ない.
本当に必要な実装に対して不必要な実装がC++で行われてたから,という噂を聞く.
std::ofstream とかの << はその一つ.
で,二項演算子は2引数1返却値の関数と同等だからJavaでも複素数演算くらい作れる.

// URLリンク(www.kmonos.net) を実装したものではない
class Complex{
  private double _real, _imaginaly;
  public Complex(double real, double imaginaly){ _real = real; _imaginaly = imaginaly }
  public static Complex add(Complex lhs, complex rhs){ return new Complex(lhs.real + rhs.real, lhs.imaginaly + rhs.imaginaly); }
  ...
}

もちろん Complex.add() は関数なので二つのComplexインスタンスを足すときは
Complex r = Complex.add(new Complex(1, 1), new Complex(1, -1));
などとなる.
決してJavaでは new Complex(1, 1) + new Complex(1, -1) はできない.

でもgroovyなら演算子オーバーロードできるからちょっと楽になるよ,見たいな話.
この辺参照 URLリンク(groovy.codehaus.org)


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch