Lua的作用域以關鍵字end
進行標識。
對于變量,有一條原則:在一切能使用local
修飾的情況下,使用local
進行修飾。
因為不用local
修飾的變量會自動變成全局變量。全局變量十分危險,很容易被篡改而不知道在哪里被篡改了,這很容易導致頑固的bug出現(xiàn)。并且全局變量的處理速度也比局部變量的速度要慢很多。
所以,盡可能的用local
來修飾變量。
有時候,用do .. end
可以用來明確限定局部變量的作用域。
local v
do
??local x = u2*v3-u3*v2
??local y = u3*v1-u1*v3
??local z = u1*v2-u2*v1
??v = {x,y,z}
end -- x,y,z的作用域結束,被系統(tǒng)清理
local count
do
??local x = 0
??count = function() x = x + 1; return x end
end -- x的作用域結束,被系統(tǒng)清理
更多建議: