Ruby>>>>>Java at TECH
[2ch|▼Menu]
436:デフォルトの名無しさん
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

5383日前に更新/94 KB
担当:undef