Me gusta esta expresión literal para una serie de cadenas:
%w( i can easily create arrays of words )
Me pregunto si hay un literal para obtener una serie de símbolos. Se que puedo hacer
%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
pero sería maravilloso usar un literal.
%w
notación?Respuestas:
¡Si! Esto es posible ahora en Ruby 2.0.0. Una forma de escribirlo es:
También puede usar otros delimitadores, por lo que también podría escribir
%i(foo bar)
o,%i!foo bar!
por ejemplo.Esta característica se anunció originalmente aquí:
http://www.ruby-lang.org/zh_TW/news/2012/11/02/ruby-2-0-0-preview1-released/
Se menciona en la documentación oficial de Ruby aquí:
http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Strings
fuente
%i[foo bar]
,%i{foo bar}
,%i!foo bar!
,%i%foo bar%
.%i[foo bar]
En Ruby 1.x, desafortunadamente la lista de % -delimitadores disponibles es limitada
fuente
%x
, parece más legible que la notación de