lua中有三种变量:全局变量,局部变量,还有table的域
在变量的首次赋值之前,变量的值均为nil
全局变量
全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil1
2
3print(a) -- nil
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
17a = 5 -- 全局变量
local b = 5 -- 局部变量
function joke()
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