Existe-t-il un moyen plus propre de faire quelque chose comme ça?
%w[address city state postal country].map(&:to_sym)
#=> [:address, :city, :state, :postal, :country]
J'aurais pensé %s
que j'aurais fait ce que je voulais, mais ce n'est pas le cas. Il prend juste tout entre les crochets et en fait un grand symbole.
Juste un petit ennui.
Réponses:
La réponse originale a été écrite en septembre 2011, mais à partir de Ruby 2.0 , il existe un moyen plus court de créer un tableau de symboles! Ce littéral:
fera exactement ce que vous voulez.
la source
%i|a b c|
Avec un risque de devenir trop littéral, je pense que le moyen le plus propre de construire un tableau de symboles est d'utiliser un tableau de symboles.
Je ne peux penser à rien de plus concis que ça.
la source
%i[ ]
Tableau non interpolé de symboles, séparés par des espaces (après Ruby 2.0)%I[ ]
Tableau interpolé de symboles, séparés par des espaces (après Ruby 2.0)%i[address city state postal country]
la manière la plus propre de faire ceci est:
%w[address city state postal country].map(&:to_sym)
la source