【Lua】為什么 Lua 里沒(méi)有 continue對(duì)于Lua里沒(méi)有continue的問(wèn)題相信很多用lua的人都遇到過(guò),官方也有作出了解釋。 在Lua中,repeat until 有點(diǎn)類(lèi)似于C++的do while,但在機(jī)制上有一點(diǎn)區(qū)別,在Lua的until的條件表達(dá)式中,表達(dá)式中的變量可以是repeat until代碼塊內(nèi)聲明的局部變量,但在C++中,while的條件表達(dá)式中的變量不允許出現(xiàn)do while內(nèi)部聲明的臨時(shí)變量,必須是do while外部聲明的變量。 基于這個(gè)原因,我們假設(shè)Lua支持了continue,考慮以下代碼: 由于continue會(huì)跳過(guò)后面local a = 1的聲明,那么 until a == 0 到底是指內(nèi)部的local a還是外部的a就會(huì)有歧義了! 那么如何用別的機(jī)制來(lái)代碼continue呢?有一個(gè)比較簡(jiǎn)單的方法:在循環(huán)內(nèi)套一個(gè)repeat ... until true,再將想用continue的地方寫(xiě)成break。如: |
|
來(lái)自: quasiceo > 《待分類(lèi)1》