2011年9月25日

[ruby-list:48407] Re: 要素のない配列の挙動?

だんです。

> r = [1, 2, 3]
> x = r
> y = r[0..-1]
> x = [3, 4, 5]
> r = [5, 6, 7]
> p r #=> [5, 6, 7]

> p x #=> [3, 4, 5]
> p y #=> [1, 2, 3]

こちらのコードですがたぶん意図通りになっていません。

r = [5, 6, 7] のところで新しい配列オブジェクトが作られてしまっています。
Rubyではこのようにリテラルオブジェクトを表記するとそこで新しいオブジェクトが作られてしまうので
リテラルを書く場合は気をつけたほうがいいと思います。

あとdupやcloneでは、コピーで新しいオブジェクトを作れれますよー。


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




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