Return 一个函数的多个值,并在 Lua 中分别访问它们?
Return multiple values to a function, and access them separately in Lua?
如果我有一个 returns 多个值的函数,我如何分别访问这些值?像 table[i].
angles = function()
x = function()
local value = 0
return value
end
y = function()
local value = 90
return value
end
z = function()
local value = 180
return value
end
return x(), y(), z()
end
当想单独使用 x
值,同时将其保留在函数 angles
.
中时,就会出现问题。
print(????)
在这方面,愿望函数的功能类似于 tables,因此我可以输入类似 print(angles.x)
的内容
此外,我知道代码看起来确实多余,但它实际上是我实际使用的代码的简化版本。对不起,如果那样的话不太有意义。
x, y, z= angles()
print (x,y,z)
有几种方法可以做到这一点。
最明显的是
local x, y, z = angles()
print(x)
如果你特别想要第一个值
local x = ( angles() )
-- `local x = angles()` would work too. Lua discards excess return values.
print(x)
或者,可读性稍差
print((angles()))
您还可以 return 函数中的 table,或使用标准模块 table
将 return 值打包成一个。
local vals = table.pack(angles())
print(vals[1])
另一种单独访问它们的方法(如问题措辞所暗示的那样)而不是一次访问所有方法是:
print((select(1,angles())))
print((select(2,angles())))
print((select(3,angles())))
输出:
0
90
180
select()
调用 需要放在括号中 以便 return 个单独的条目而不是 全部在给定的偏移量之后.
如果我有一个 returns 多个值的函数,我如何分别访问这些值?像 table[i].
angles = function()
x = function()
local value = 0
return value
end
y = function()
local value = 90
return value
end
z = function()
local value = 180
return value
end
return x(), y(), z()
end
当想单独使用 x
值,同时将其保留在函数 angles
.
print(????)
在这方面,愿望函数的功能类似于 tables,因此我可以输入类似 print(angles.x)
此外,我知道代码看起来确实多余,但它实际上是我实际使用的代码的简化版本。对不起,如果那样的话不太有意义。
x, y, z= angles()
print (x,y,z)
有几种方法可以做到这一点。
最明显的是
local x, y, z = angles()
print(x)
如果你特别想要第一个值
local x = ( angles() )
-- `local x = angles()` would work too. Lua discards excess return values.
print(x)
或者,可读性稍差
print((angles()))
您还可以 return 函数中的 table,或使用标准模块 table
将 return 值打包成一个。
local vals = table.pack(angles())
print(vals[1])
另一种单独访问它们的方法(如问题措辞所暗示的那样)而不是一次访问所有方法是:
print((select(1,angles())))
print((select(2,angles())))
print((select(3,angles())))
输出:
0
90
180
select()
调用 需要放在括号中 以便 return 个单独的条目而不是 全部在给定的偏移量之后.