Ошибка конкатенации строк

Я столкнулся с синтаксической ошибкой. Я согласен с тем, что это синтаксическая ошибка, но мне несколько любопытно, , почему это синтаксическая ошибка.

Это работает именно так, как вы ожидали:

(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 '+@' for "^2 = ":String

Как ни странно, Я могу переместить второй знак плюса в любое место, и Ruby, похоже, не испытывает с этим проблем, но если первый из них касается двойной кавычки, я получаю синтаксическую ошибку.

Почему именно это происходит?

8
задан sawa 2 May 2011 в 21:32
поделиться