【Lua】“詭異”的return

類似其他語言,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 函數即可。


發佈了129 篇原創文章 · 獲贊 47 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章