Создание или добавление к массиву в Ruby
foo ||= []
foo << :element
чувствует себя немного неуклюжим. Есть ли более идиоматические способ?
3 ответа:
вы всегда можете использовать метод push на любом массиве. Мне это нравится больше.
(a ||= []).push(:element)
вы также можете извлечь выгоду из Ядра#Массив, например:
# foo = nil foo = Array(foo).push(:element) # => [:element]
который имеет преимущество сглаживания потенциального массива, например:
# foo = [1] foo = Array(foo).push(:element) # => [1, :element]