多变量同时赋值
Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。当变量个数和值的个数不一致时:
左侧变量列表如果多出,多出的部分被置为nil;
右侧值列表如果多出,最末多出的部分被抛弃。
a, b, c, d = 1, 2, 3
print(a, b, c, d) --1 2 3 nil
a, b, c = 4, 3, 2, 1
print(a, b, c, d) --4 3 2 nil
执行赋值语句时Lua会先计算右边所有的值,然后再执行赋值操作,所以我们可以这样交换变量的值
a, b = 1, 2
a, b = b, a --等价于执行 a, b = 2, 1
拷贝赋值、引用赋值问题
这两个词是来自其他语言,Lua也需要注意这个问题。在Lua中可以用C语言的指针来理解,即把Lua变量看作是C语言的指针,下面来用不同类型的数据看Lua变量赋值的情况。
示例1,数字类型:
a = 3 -- a变量类似C语言的一个指针,指