2011年9月25日

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

私も何度もはまるんですが、これ
> いろいろとご教示ありがとうございました.
> 私自身,これまでに何度もハマった罠だったことにようやく気がつきました.
でも
> 穴は,ブロックの中のローカル変数の参照先をいじっただけでは,もとの
> 配列の要素のオブジェクトは変化しないことに気づかなかったことだと
> 思います.
ではないです。


irb(main):001:0> a=[[1],[2]]  #=> [[1], [2]]
irb(main):002:0> a.each{|r| r[0] += 1} #=> [[2], [3]]
irb(main):003:0> a #=> [[2], [3]]

r.each do |x|
if x.empty?
x = [""] # <== ここで、

end
}

x(すなわち r の要素)に 新しい object [""] が作られて代入されたのです

                      出沢

# 私がようやくハマらなくなったのは
# something = Hash.new([])

--------------090801070500090207070001--


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




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