在Ruby中创建或附加到数组

时间:2012-08-28 16:30:41

标签: ruby arrays

foo ||= []
foo << :element

感觉有点笨重。是否有更惯用的方式?

3 个答案:

答案 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]