«前の日記(2009-02-07) 最新 次の日記(2009-02-12)» 編集

会長@腹部日記


2009-02-11 [長年日記]

_ flattenで大ハマリ

flatten!の振る舞いを忘れて、一時間もはまってしまいました。。

a = [0, 1, 2, [3, 4, 5]]
a.flatten
=> [0, 1, 2, 3, 4, 5]
p a
=> [0, 1, 2, [3, 4, 5]]

a.flatten!
=> [0, 1, 2, 3, 4, 5]
p a
=> [0, 1, 2, 3, 4, 5]
a.flatten!
=> nil

リファレンスにも

ちゃんと書いてありますね。。。

flatten! は配列それ自体を破壊的に平滑化し、配列がネストしていないときには nil を返します。

[Array - Rubyリファレンスマニュアルより引用]