lua中有两种变量,一种全局变量,一个局部变量。变量默认都是全局变量。 使用local来声明一个局部变量:ui
local a = 1; --> 局部变量
b = 2 --> 全局变量
复制代码
局部变量的做用域只在变量声明所在的块中有效。举个例子:lua
x = 10 --> 全局x
while i<=x do
local x = i*2 -- 在while循环体内有效
print(x) --> 2, 4, 6, 8, ...
i = i + 1
end
if i > 20 then
local x -- 只在then语句范围内有效
x = 20
print(x + 2)
else
print(x) --> 10 这里输出的是全局的x
end
复制代码
像上面这些while,if等语句中,local变量生效的范围就叫作块。是局部变量的做用域范围。spa
显示声明一个块。 能够使用do end来显示的声明一个做用域块,这样在这个块中声明的变量只在这个块中有效。code
举个例子:作用域
do
local a2 = 1
local d = 2
x1 = a2 + d
x2 = a2 - d
end
print(x1, x2) --> 3 -1
print(a2, d) --> nil nil
复制代码