Ruby>>>>>Java
at TECH
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