我遇到了語法錯誤。我接受這是一個語法錯誤,但我有點好奇爲什麼這是一個語法錯誤。字符串串聯錯誤
這工作完全按照你期望它:
(0..9).each { |n| puts n.to_s + "^2 = " + (n**2).to_s }
這將引發一個錯誤:
(0..9).each { |n| puts n.to_s +"^2 = "+ (n**2).to_s }
錯誤:
NoMethodError: undefined method '[email protected]' for "^2 = ":String
奇怪的是,我可以移動第二個符號和Ruby似乎沒有任何問題,但如果第一個碰巧碰到雙引號,我會得到一個語法錯誤。
爲什麼會發生這種情況?
看起來好像當你做'.to_s +「'它認爲'+''是to_s的一個參數。嘗試做'.to_s()+「'並且它工作正常。不是一個答案,而是一個線索:) – 2011-05-02 19:54:32