我遇到了语法错误。我接受这是一个语法错误,但我有点好奇为什么这是一个语法错误。字符串串联错误
这工作完全按照你期望它:
(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