foo ||= []
foo << :element
感觉有点笨重。是否有更惯用的方式?
答案 0 :(得分:131)
(foo ||= []) << :element
但是,好吧。保持可读性真是太麻烦了吗?
答案 1 :(得分:55)
您也可以在任何阵列上使用push方法。我更喜欢它。
(a ||= []).push(:element)
答案 2 :(得分:8)
您也可以从Kernel#Array中受益,例如:
# foo = nil
foo = Array(foo).push(:element)
# => [:element]
具有扁平化潜在数组的好处,例如:
# foo = [1]
foo = Array(foo).push(:element)
# => [1, :element]