[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: swap
前橋です。
水野さん:
>せめて
> (elem[i],elem[j])=( new Pair(elem[i],elem[j])).swap();
>と書きたいですね。
Perlの感覚でこれができるのなら、
(elem[i], elem[j]) = Swap.swap(elem[j], elem[i]);
で済むような。(swapはSwapクラスのstaticメソッドとして)
Javaにいわゆる call by reference がないのは、プリミティブの
ポインタを取れるようにすると「ポインタは全てヒープ中のオブジェ
クトの先頭を指す」という原則が崩れてGCの実装が面倒になるから
じゃないのかと素人の邪推をしてるんですが。
本当の所はどうなんでしょう > 詳しい方
Javaの場合、Cと違ってメソッドの引数の数が固定なので、引数を
スタックから除くのが呼び出され側で可能で、じゃあ戻り値もスタッ
ク使って複数個戻せるんじゃないかという気もするんですが...
これも素人の推測です。本当の所はどうなんでしょう?
そういえばJavaのスタックって、メソッド呼び出し毎に独立でしたっけ?
------------------------------------------------------------
前橋 和弥 maebashi@xxxxxxxxxx
中部ソフトエンジニアリング(株)
〒450 名古屋市中村区名駅4-10-25(名駅IMAIビル 5F)
Tel:(052)583-4511(代) 内線 252 Fax:(052)583-4566
------------------------------------------------------------