Créer un tableau de symboles

Y a-t-il une façon 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é que %s aurait fait ce que je voulais, mais ce n’est pas le cas. Cela prend tout entre les crochets et en fait un grand symbole.

Juste une petite contrariété.

J’ai écrit la réponse originale en septembre 2011, mais à partir de Ruby 2.0, il existe un moyen plus rapide de créer un tableau de symboles! Ce littéral:

 %i(address city state postal country) 

fait exactement ce que vous voulez.

Avec le risque de devenir trop littéral, je pense que la manière la plus propre de construire un tableau de symboles consiste à utiliser un tableau de symboles.

 fields = [:address, :city, :state, :postal, :country] 

Je ne pense à rien de plus concis que cela.

%i[ ] Tableau de symboles non interpolé, 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 le faire est:

%w[address city state postal country].map(&:to_sym)