类似其他语言,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 函数即可。