Мне нравится это буквальное выражение для массива строк:
%w( i can easily create arrays of words )
Мне интересно, есть ли литерал, чтобы получить массив символов. Я знаю, что могу сделать
%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
но было бы замечательно просто использовать буквальное.
%w
обозначениях?Ответы:
Да! Это возможно сейчас в Ruby 2.0.0. Один из способов написать это:
Вы также можете использовать другие разделители, так что вы также можете написать
%i(foo bar)
или,%i!foo bar!
например.Эта функция была первоначально объявлена здесь:
http://www.ruby-lang.org/zh_TW/news/2012/11/02/ruby-2-0-0-preview1-released/
Упоминается в официальной документации Ruby здесь:
http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Strings
источник
%i[foo bar]
,%i{foo bar}
,%i!foo bar!
,%i%foo bar%
.%i[foo bar]
В Ruby 1.x, к сожалению, список доступных %-ограничителей ограничен
источник
%x
, кажется более читабельным, чем нотация с обратными галочками, которую я использую