能有人解释一下 line multiple local variables 吗

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 nil 12

即使我将 print 语句更改为

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

仍然得到

12 nil 12

点赞
用户3574628
用户3574628

函数 getCoordinates 返回 3 个值。你的 local x, y, z 声明将这些值解包到 3 个新变量中。

当你将 getCoordinates() 赋值给一个单一变量时,最后两个值将被静默丢弃,因此所有 3 个变量都将得到值 12。(我不知道你是如何得到 ynil 值的。)

2018-11-28 02:37:54