web-dev-qa-db-fra.com

Créer ou ajouter un tableau dans Ruby

foo ||= []
foo << :element

Se sent un peu maladroit. Y a-t-il un moyen plus idiomatique?

77
amindfv
(foo ||= []) << :element

Mais meh. Est-ce vraiment si pénible de le garder lisible?

135
Dave Newton

Vous pouvez aussi toujours utiliser la méthode Push sur n’importe quel tableau. Je l'aime mieux.

(a ||= []).Push(:element)
56
meub

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]
8
Christian Rolle