局部变量
lua中有两种变量,一种全局变量,一个局部变量。变量默认都是全局变量。 使用local来声明一个局部变量:
local a = 1; --> 局部变量
b = 2 --> 全局变量
局部变量的作用域只在变量声明所在的块中有效。举个例子:
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变量生效的范围就叫做块。是局部变量的作用域范围。
块
显示声明一个块。 可以使用do end来显示的声明一个作用域块,这样在这个块中声明的变量只在这个块中有效。
举个例子:
do
local a2 = 1
local d = 2
x1 = a2 + d
x2 = a2 - d
end
print(x1, x2) --> 3 -1
print(a2, d) --> nil nil