我喜欢这个字符串数组的文字表达式:
%w( i can easily create arrays of words )
我想知道是否有文字来获取符号数组。我知道我可以做到
%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
但是使用文字会非常棒。
答案 0 :(得分:266)
是的!现在可以在Ruby 2.0.0中实现。写它的一种方法是:
%i{foo bar} # => [:foo, :bar]
您也可以使用其他分隔符,因此您也可以编写%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
答案 1 :(得分:25)
在Ruby 1.x中,遗憾的是可用的%-delimiters列表是有限的
Modifier Meaning
%q[ ] Non-interpolated String (except for \\ \[ and \])
%Q[ ] Interpolated String (default)
%r[ ] Interpolated Regexp (flags can appear after the closing delimiter)
%s[ ] Non-interpolated Symbol
%w[ ] Non-interpolated Array of words, separated by whitespace
%W[ ] Interpolated Array of words, separated by whitespace
%x[ ] Interpolated shell command