Lua先对等号右边的所有元素求值,然后才执行赋值。一句多重赋值来交互两个变量了,比如:
x,y = y,x --交换x与y
a[i],a[j] = a[j],a[i] --交换a[i]与a[j]
Lua总是会将等号右边值的个数调整到与左边变量的个数相一致。规则是:若值的个数少于变量的个数,那么多余的变量会被赋为nil;若值的个数更多的话,那么多余的值会被“静悄悄地”丢弃掉:
a,b,c = 0,1
print(a,bc) --0 1 nil
a,b = a+1,b+1,c+1
pirnt(a,b) --1 2
下面常见的问题
a,b,c = 0
print(a,b,c) --0 nil nil
若要初始化一组变量,应为每个变量提供一个值:
a,b,c = 0,0,0
print(a,b,c) --0 0 0