foo ||= []
foo << :element
少し不格好に感じます。もっと慣用的な方法はありますか?
foo ||= []
foo << :element
少し不格好に感じます。もっと慣用的な方法はありますか?
回答:
(foo ||= []) << :element
しかし、まあ。読みやすくするのは本当に面倒ですか?
foo
、それ自体があなたが値を検索する(ネストされた)ハッシュのような、より複雑な式であり、これは値を複数回見上げたり見上げた配列値のために別の変数を費やして回避するための良い方法です。
次のように、Kernel#Arrayの恩恵を受けることもできます。
# foo = nil
foo = Array(foo).push(:element)
# => [:element]
これには、次のような潜在的な配列をフラット化するという利点があります。
# foo = [1]
foo = Array(foo).push(:element)
# => [1, :element]
foo = foo
セットfoo
に定義されていません。また、平らになりません。配列の場合は返されます。nil
foo
Kernel#Array
foo
foo
(foo ||= []) << :element
ますが、見苦しいです。