Eu gosto dessa expressão literal para uma matriz de strings:
%w( i can easily create arrays of words )
Gostaria de saber se existe um literal para obter uma matriz de símbolos. Eu sei que posso fazer
%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
mas seria tão maravilhoso apenas usar um literal.
%w
notação?Respostas:
Sim! Isso é possível agora no Ruby 2.0.0. Uma maneira de escrever é:
Você também pode usar outros delimitadores, para escrever
%i(foo bar)
ou%i!foo bar!
por exemplo.Esse recurso foi anunciado originalmente aqui:
http://www.ruby-lang.org/zh_TW/news/2012/11/02/ruby-2-0-0-preview1-released/
É mencionado na documentação oficial do Ruby aqui:
http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Strings
fonte
%i[foo bar]
,%i{foo bar}
,%i!foo bar!
,%i%foo bar%
.%i[foo bar]
Infelizmente, no Ruby 1.x, a lista de % -delimitadores disponíveis é limitada
fonte
%x
, parece mais legível do que os acentos graves notação eu uso