%w[ ] Non-interpolated Array of words, separated by whitespace
%W[ ] Interpolated Array of words, separated by whitespace
用法:Ruby中的%w {}和%W {}大小寫W數組字面量有什麼區別?
p %w{one one two three 0 1 1 2 3} # = > ["one", "one", "two", "three", "0", "1", "1", "2", "3"]
p %W{one one two three 0 1 1 2 3} # = > ["one", "one", "two", "three", "0", "1", "1", "2", "3"]
p %w{C:\ C:\Windows} # => ["C: C:\\Windows"]
p %W{C:\ C:\Windows} # => ["C: C:Windows"]
我的問題是...有什麼區別?
檢查編輯,我喜歡你的例子,它解釋了很多。在我的例子中最後兩行的輸出讓我困惑。 – RyanScottLewis 2011-04-22 03:01:10
同樣,你沒有使用Ruby表達式,它沒有被「#{}」包圍。反斜槓是Ruby中的一個特殊字符,用於從字面上解釋其他特殊字符,並且您在字符串的上下文中使用該字符,而不是表達式。這就解釋了爲什麼反斜槓在雙引號中反彈而不是單引號。 – acconrad 2011-04-22 03:04:13
我認爲c00lryguy的觀點更深入。 1)儘管'\''='「\\」',反斜槓與'%w {}'一起消失了。 2)在''W \''''''W''中,如'%W {}'所示,反斜槓被忽略的時間也是一個普遍的問題。 – sawa 2011-04-22 03:16:19