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
複製代碼