作用域

最后更新于:2022-04-01 03:26:57

## 作用域 Lua的作用域以关键字`end`进行标识。 对于变量,有一条原则:在一切能使用`local`修饰的情况下,使用`local`进行修饰。 因为不用`local`修饰的变量会自动变成全局变量。全局变量十分危险,很容易被篡改而不知道在哪里被篡改了,这很容易导致顽固的bug出现。并且全局变量的处理速度也比局部变量的速度要慢很多。 所以,尽可能的用`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的作用域结束,被系统清理 local count do   local x = 0   count = function() x = x + 1; return x end end -- x的作用域结束,被系统清理 ~~~
';