看以下代碼:
看了lua的源代碼,發現在語法分析階段,表達式中的i(也叫控制變量)和循環體中的i并不是一個值,其實表達式中的i叫internal index,循環體中的i叫external index。
所以在循環體中并沒有改變表達式中的i的值。
至于為什么lua要這樣做,估計是為了安全吧,怕在循環體中不經意地改變了表達式的i,從而產生bug。
另外,在Progammming in Lua一書中也提到不要在循環體內修改控制變量(實際修改的是external index)的值,否則會有不可預知的結果。
新聞熱點
疑難解答