有人可以解释多个局部变量吗?

时间:2018-11-28 02:00:19

标签: lua

1 function getCoordinates()
2   return 12, 55, 123
3 end

4 local x, y, z = getCoordinates()
5 print(x, y, z)  

output:
12  55  123

第4行做什么?如果我将其替换为

local x= getCoordinates()
local y= getCoordinates()
local z= getCoordinates()

我得到12零12

即使我将打印语句更改为

print(x)
print(y)
print(z)

仍然得到

12 零 12

1 个答案:

答案 0 :(得分:3)

函数getCoordinates返回3个值。您的local x, y, z声明将这些值解压缩为3个新变量。

当您将getCoordinates()分配给单个变量时,最后两个值将被静默删除,因此所有3个变量都将获得值12。 (我不知道如何以nil获得y。)