2011年2月 3日

[ruby-list:47825] Re: 参照渡しの実現方法は?

永井@知能.九工大です.

From: YOSHIIZUMI <t-yoshiizumi@xxxxx>
Subject: [ruby-list:47824] Re: 参照渡しの実現方法は?
Date: Thu, 3 Feb 2011 06:33:52 +0900
Message-ID: <1296682455.8599.28046_Mocchan.SGM02061@xxxxx>
>  きしもとさん、resありがとうございました。
>  rubyについて、時々「こんなプログラム記述もできるんだ」と意外感を味わうことが

> あるので、もしかして参照渡しについても何かあるのでは、と思ったのですが、難しい
> んですね。
>  難しいことが分かったのも私には収穫です。

無理矢理にやる例の一つくらいはあってもいいですよね.
期待通りのものではないとは思いますが,
binding を使う方法でこんなのはどうですか?
----------------------------------------------------------------
def swap_value(binding_obj, var_name1, var_name2)
x, y = binding_obj.eval("[#{var_name1}, #{var_name2}]")
x, y = y, x
binding_obj.eval("#{var_name1}, #{var_name2} = #{x}, #{y}")
end

x = 1; y = 2
p [x, y] #=> [1, 2]
swap_value(binding, :x, :y)
p [x, y] #=> [2, 1]
----------------------------------------------------------------
--
永井 秀利 (nagai@xxxxx)
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教


投稿者 xml-rpc : 2011年2月 3日 08:02
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/101753
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。