这个街区出了什么问题?
if item.nil?
found = true
elsif item[:name] == name && item[:category] == category
found = true
else
i++
end
Run Code Online (Sandbox Code Playgroud)
当我进行语法检查时,我得到了
syntax error, unexpected keyword_end
Run Code Online (Sandbox Code Playgroud)
但如果我删除end
然后我得到
syntax error, unexpected end-of-input
Run Code Online (Sandbox Code Playgroud)
问题出在这里:
i++
Run Code Online (Sandbox Code Playgroud)
Ruby没有++
运营商.你想要的是这个:
i += 1
Run Code Online (Sandbox Code Playgroud)
我认为这个特定错误的原因是Ruby将第二个解释+
为一元运算+
符,即"正数符号"(因为它是唯一在该上下文中有意义的东西),因此期望下一个令牌是数字†,例如(为清晰起见括号):
i + (+5)
Run Code Online (Sandbox Code Playgroud)
...但是下一个标记是end
错误的语法错误.
†或其他响应+@
方法的东西.