2011年9月26日

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

小西です。

配列要素を触るならmap!ですかねぇ。

r = [[], []]
r.map! do |x|
p x #=> []
if x.empty?

x = [""]
end
p x #=> [""]
x
end
p r #=> [[], []]

> 前略
>
> どうにも納得のいかない挙動に遭遇したので,詳しい方にご教示をお願いします.
>
> p [""] == [] #=> false
> p [""].empty? #=> false
> p [].empty? #=> true
>
> r = []
> if r.empty?
> r = [""]
> end
> p r #=> [""]
>
> ここまでは,何もおかしな事はありません.ところが・・・
>
> r = [[], []]
> r.each do |x|
> p x #=> []
> if x.empty?
> x = [""]
> end
> p x #=> [""]
> end
> p r #=> [[], []]
>
> [] と [""] は異なるはずだと思っていましたし,1重の配列では確かにそうなのですが,
> 配列を2重にした時の挙動が理解できません.
>

--
+==============================================
KONISHI Hiromasa

RaaX co.,ltd.

1-12 N-24, E-17, Sapporo
065-0024 Japan

TEL +81-011-780-2481
FAX +81-011-780-2488
E-mail konishi@xxxxx
+==============================================

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




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