%w 和 %W 有什么区别?

18
我在查看 Ruby 的文档。我对使用 %w()%W() (后者中的 W 是大写) 感到困惑。两者之间有什么区别?你能为我指出一些相关文档吗?
1个回答

36

大写字母时,数组是从插值字符串中构建的,就像在双引号字符串中发生的那样;小写字母时,它是从不插值的字符串构建的,就像在单引号字符串中发生的那样。例如:

irb(main):001:0> foo = "bar"
=> "bar"
irb(main):002:0> %w(#{foo} bar baz)
=> ["\#{foo}", "bar", "baz"]
irb(main):003:0> %W(#{foo} bar baz)
=> ["bar", "bar", "baz"]
irb(main):004:0> ^D

1
他的意思是你可以做像%W!test te#{variable}st!这样的事情,其中的#{variable}将被解释。在%w中,它将被视为简单字符串。 - oldergod
@BhushanLodha:好的,已添加一个。 - mipadi
3
换句话说,%w%W 的区别与 %q%Q 的区别相同。 - Jörg W Mittag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接