Ruby %I{ .. } returns a list of symbols with interpolation

hooopo · July 25, 2012 · Last by Saito replied at July 25, 2012 · 2592 hits

https://github.com/ruby/ruby/commit/91bd6e711db3418baa287e936d4b0fac99927711

终于可以%i{a b c d}这样创建符号列表了。。

是不是出来的结果便成?:

[:a, :b, :c, :d]

#1 楼 @huacnlee 是的

ruby -v -e "p %i{a b c}"
ruby 2.0.0dev (2012-07-25 trunk 36531) [i686-linux]
[:a, :b, :c]

irb> %w(a b c d)
["a","b","c","d"]
irb> %i(a b c d)
[:a, :b, :c, :d]
irb> %(a b c d)
"a b c d"
irb> %r(a b c d)
/a b c d/
irb> 没有有变成数组的?
[4,2,1,3]

#3 楼 @huacnlee 这个真没有。。一般都用 range 吧 还有就是 ruby 数组写法本身就简单,字符串和符号需要敲引号和冒号,所以才有了各种内插..

昨天看 josevalim 问 terderlove 为啥是 %i %I 不是 %s

terderlove 解释说: %S 被用了。String.intern 是 String.to_sym 的 alias..

josevalim 说:make sense. <===3

You need to Sign in before reply, if you don't have an account, please Sign up first.