【问题标题】:Lua 'end' expected to close 'if'Lua 'end' 预计会关闭 'if'
【发布时间】:2013-03-03 13:22:50
【问题描述】:

我在 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#编程

【问题讨论】:

    标签: if-statement lua


    【解决方案1】:

    参见 Lua 手册§3.3.4:

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

    您的代码在return 语句之后调用了print,因此无效。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-03
        • 2021-07-26
        • 1970-01-01
        • 2019-07-22
        • 1970-01-01
        • 2010-11-19
        • 2013-08-19
        相关资源
        最近更新 更多