foo ||= []
foo << :element
Se sent un peu maladroit. Y a-t-il un moyen plus idiomatique?
(foo ||= []) << :element
Mais meh. Est-ce vraiment si pénible de le garder lisible?
Vous pouvez aussi toujours utiliser la méthode Push sur n’importe quel tableau. Je l'aime mieux.
(a ||= []).Push(:element)
Vous pourriez aussi bénéficier du Kernel # Array , comme:
# foo = nil
foo = Array(foo).Push(:element)
# => [:element]
qui a l'avantage d'aplanir un tableau potentiel, comme:
# foo = [1]
foo = Array(foo).Push(:element)
# => [1, :element]