我无法确定什么是错用下面的Ruby内联救援码为什么a = b解救一个错误但救援stmt不是?
def test_check()
p "first st"
t = 5 * lsdj rescue return false
p "second"
end
p test_check
这是给一个错误消息syntax error, unexpected kFALSE, expecting kEND
但如果我删除赋值语句它会正常工作(返回false)。
def test_check()
p "first st"
5 * lsdj rescue return false
p "second"
end
如果出了什么问题红宝石内嵌救援的正确语法是什么?
+1。一个非常好的问题。人们会希望修饰符规则在两种情况下都能得到相同的解析,并且对此的回答会遇到很多关于Ruby为什么会这样的问题。也许只有马茨知道完整的答案,但我已经在下面贡献了我的理解。 – DigitalRoss 2013-02-27 22:52:58