lua中有三种变量:全局变量,局部变量,还有table的域

在变量的首次赋值之前,变量的值均为nil

全局变量

全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil

1
2
3
print(a)     
a = 1
print(a) -- 1

当你想删除一个全局变量,只需要将变量赋值为nil

当且仅当一个变量不等于nil时,这个变量存在

局部变量

局部变量有其作用范围,局部变量可以被定义在它作用范围中的函数自由使用,局部变量可以在语句块总任何地方申明,应该尽可能的使用局部变量,好处有两个

1.避免命名冲突

2.访问局部变量的速度比全局变量更快

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = 5     -- 全局变量
local b = 5 -- 局部变量

function ()
c = 5 -- 全局变量
local d = 6 -- 局部变量
end

joke()
print(c,d) -- 5 nil

do
local a = 6 -- 局部变量
b = 6 --全局变量
print(a,b) -- 6 6
end
print(a,b) -- 5 6