Есть ли более чистый способ сделать что-то подобное?
%w[address city state postal country].map(&:to_sym)
#=> [:address, :city, :state, :postal, :country]
Я бы подумал %s
, сделал бы то, что хотел, но это не так. Он просто берет все, что находится в скобках, и делает из этого один большой символ.
Просто небольшое раздражение.
Ответы:
Первоначальный ответ был написан еще в сентябре 2011 года, но, начиная с Ruby 2.0 , существует более короткий способ создания массива символов! Этот буквальный:
сделаю именно то, что вы хотите.
источник
%i|a b c|
Рискуя стать слишком буквальным, я думаю, что самый простой способ построить массив символов - это использовать массив символов.
Не могу придумать ничего более лаконичного, чем это.
источник
%i[ ]
Неинтерполированный массив символов, разделенных пробелами (после Ruby 2.0)%I[ ]
Интерполированный массив символов, разделенных пробелами (после Ruby 2.0)%i[address city state postal country]
Самый чистый способ сделать это:
%w[address city state postal country].map(&:to_sym)
источник