Lua的作用域以關(guān)鍵字end
進(jìn)行標(biāo)識(shí)。
對(duì)于變量,有一條原則:在一切能使用local
修飾的情況下,使用local
進(jìn)行修飾。
因?yàn)椴挥?code>local修飾的變量會(huì)自動(dòng)變成全局變量。全局變量十分危險(xiǎn),很容易被篡改而不知道在哪里被篡改了,這很容易導(dǎo)致頑固的bug出現(xiàn)。并且全局變量的處理速度也比局部變量的速度要慢很多。
所以,盡可能的用local
來修飾變量。
有時(shí)候,用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的作用域結(jié)束,被系統(tǒng)清理
local count
do
??local x = 0
??count = function() x = x + 1; return x end
end -- x的作用域結(jié)束,被系統(tǒng)清理
更多建議: