【Lua学习笔记4】Lua中的局部变量和块

356 阅读1分钟

局部变量

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