Lua变量
变量在使用前,需要在代码中进行声明,即创建该变量
Lua 变量有三种类型:全局变量、局部变量、表中的域
在变量首次赋值之前,变量的值均为 nil
一、赋值
赋值是改变一个变量的值和改变表域的最基本的方法
1.Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量
如:a,b=10,9 相当于a=10;b=9
2.遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值
如:x,y=y,x 即交换x,y的值
3.当变量个数和值的个数不一致时,Lua会以变量个数为基础采取相应的策略
左边变量个数>右边值的个数 会按照变量个数补足nil
a, b, c = 0, 1
print(a,b,c)
输出结果:
0 1 nil
左边变量个数<右边值的个数 多余的值会被忽略
a, b = 1, 2, 3
print(a,b)
输出结果:
1 2
注:如果要对多个变量赋值必须依次对每个变量赋值
4.多赋值经常用来交换变量,或将函数调用返回给变量
a,b=f()
f()返回两个值,第一个赋给a,第二个赋给b
二、全局变量
全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是nil
注:
1.如果你想删除一个全局变量,只需要将变量赋值为nil
2.当且仅当一个变量不等于nil时,这个变量才存在
三、局部变量
局部变量是有其作用范围的,局部变量可以被定义在它作用范围中的函数自由使用,局部变量可以在语句块中任何地方声明。
使用局部变量优势:
1.可以避免命名冲突
2.访问局部变量的速度比全局变量快
a = 5 -- 全局变量
local b = 5 -- 局部变量
function joke()
c = 5 -- 全局变量
local d = 6 -- 局部变量
end
joke()
print(c,d)
do
local a = 6 -- 局部变量
b = 6 -- 对局部变量重新赋值
print(a,b);
end
print(a,b)
输出结果:
5 nil
6 6
5 6