2013-03-14 72 views
2

我在LuaLua的“结束”预计将“如果”

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:“结束”预期(关闭“如果”在行56)在'print'附近,所以它预计在我的下面打印结尾(“whatwhat”)结束。 但是我放弃了它,如果我这样做,它仍然呻吟着我。

我非常新的Lua和我有点困惑,我通常程序在C#

回答

8

见Lua的手动§3.3.4

回报语句只能写成块的最后陈述。如果在块的中间确实需要返回,则可以使用明确的内部块,如在成语do return end中,因为现在返回是其(内部)块中的最后一个语句。

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

0

我怀疑你的问题是恢复后打印。这是死代码; Lua希望在块的结尾处有回报。