類似其他語言,Lua也有return關鍵字,但需要注意其用法。因爲它只能用在block結束的地方, 不能用在block的一箇中間部分。想要使用 return 提前返回的童鞋注意了!
例子:
function fun()
i = 1
return i
i = 2
end
fun()
結果報錯:
lua: a.lua:4: 'end' expected (to close 'function' at line 1) near 'i'
提示return後面必須是end, 意思是既然你要return了, 那麼就結束這個塊吧。
改成
function fun()
i = 1
return i
end
fun()
就沒毛病了。另外,return在循環,判斷中的使用也和函數中類似,必須使用在循環結束,或者判斷的一個拐點結束前。另外,如果把之前例子中的 i = 2 換成一句 print() 函數,又不會報錯了。
具體如何詭異參見:lua "詭異"的return用法
解決方案:
do return end
這樣添加 return 函數即可。