[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: swap




前橋です。

>>swapが作れるものなら作りたい、という要望は、プログラマの側
>>からすれば自然なものに思えます。

遠藤さん:
>JavaHouse のしらかみさんの、Observable/Observerを使えば良い
>という案はいかがですか?

あれ、swapを作るための案に見えないんですけど...

どっちにしても、IntegerやIntegerBuffer(?)のように、オブジェ
クトを使うと、

オブジェクトは結局ポインタ(参照)なので、

その指す先のものの中身を書き換えてしまうと、誰か他のポインタ
がそれを指していた場合にはまります。

結局、swapなら、自分でひっくり返すしかないんでしょう。

swapに限らず、もっと一般に変数引数とか参照渡しとか言われるも
のをJavaでやることを考えると、

結局そういう時は、メソッドから一度に複数の値を返して欲しいわ
けですが、

そういう場合は、結局一時オブジェクトをnewして渡して中に入れ
てもらうか、欲しい値を全て詰めたオブジェクトを戻り値で返して
もらうかのどちらかになるんでしょうね。

まあ、ひとつのメソッドから、一度に5個も6個も値を返したい、と
いうのは、機能分割の時点で失敗しているような気もしますが...
でもやっぱり、2〜3個ぐらいの値なら、一度に返したくなる時はあ
りそうです。

>>  swap(a[i], a[i]);
>このときも例外を throw しないといけませんね。メモメモ。

うーん、やっぱり例外ですかね。一時変数を使ったswapをエミュレー
トするなら、何も起きないという仕様でも良さそうですが。

------------------------------------------------------------
  前橋 和弥                             maebashi@xxxxxxxxxx
  中部ソフトエンジニアリング(株)
    〒450 名古屋市中村区名駅4-10-25(名駅IMAIビル 5F)
    Tel:(052)583-4511(代) 内線 252 Fax:(052)583-4566
------------------------------------------------------------