Gibt es eine sauberere Möglichkeit, so etwas zu tun?
%w[address city state postal country].map(&:to_sym)
#=> [:address, :city, :state, :postal, :country]
Ich hätte gedacht, ich hätte %s
getan, was ich wollte, aber das tut es nicht. Es nimmt einfach alles zwischen die Klammern und macht ein großes Symbol daraus.
Nur ein kleiner Ärger.
Antworten:
Die ursprüngliche Antwort wurde im September '11 geschrieben, aber ab Ruby 2.0 gibt es eine kürzere Möglichkeit, eine Reihe von Symbolen zu erstellen! Dieses Wort:
wird genau das tun, was Sie wollen.
quelle
%i|a b c|
Ich denke, der sauberste Weg, ein Array von Symbolen zu konstruieren, besteht darin, ein Array von Symbolen zu verwenden.
Ich kann mir nichts prägnanteres vorstellen.
quelle
%i[ ]
Nicht interpoliertes Array von Symbolen, durch Leerzeichen getrennt (nach Ruby 2.0)%I[ ]
Interpoliertes Array von Symbolen, getrennt durch Leerzeichen (nach Ruby 2.0)%i[address city state postal country]
Der sauberste Weg, dies zu tun, ist:
%w[address city state postal country].map(&:to_sym)
quelle