[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
------------------------------------------------------------