foo ||= []
foo << :element
感觉有点笨重。有没有更惯用的方法?
(foo ||= []) << :element
但是嗯。保持可读性真的那么繁重吗?
您也可以随时在任何阵列上使用 push 方法。我更喜欢它。
(a ||= []).push(:element)
您还可以从Kernel#Array中受益,例如:
# foo = nil
foo = Array(foo).push(:element)
# => [:element]
这具有展平潜在数组的好处,例如:
# foo = [1]
foo = Array(foo).push(:element)
# => [1, :element]
对于可读性和没有条件的情况也更加冗长:
foo = Array(foo) << :element