2

我在lua中有这个代码

function onMouseDown(event)
    print(event.x, event.y)
    if event.x>160 then
        print("what")
        return 1
        print("whatwhat") 
    else 
        return 0
        print("WhatWhatWhat")
    end


    fruit:setX(event.x)
    fruit:setY(event.y)
end

但它正在抱怨 main.lua:59: 'end' 预期(在第 56 行关闭 'if')在 'print' 附近,所以它期待在我的 if 下面 print("whatwhat") 的末尾结束。但是我在那里结束了,如果我这样做,它仍然会抱怨我。

我对 lua 很陌生,我有点困惑,我通常用 c# 编程

4

2 回答 2

8

请参阅 Lua 手册§3.3.4

return语句只能写为块的最后一条语句。如果确实需要在块的中间返回,那么可以使用显式的内部块,就像在 idiom 中一样do return end,因为现在return是其(内部)块中的最后一条语句。

您的代码printreturn语句之后调用了该调用,因此无效。

于 2013-03-14T23:35:51.980 回答
0

我怀疑你的问题是退货后的打印。那是死代码;Lua 希望在一个块的末尾返回。

于 2013-03-14T23:29:02.743 回答