gpt4 book ai didi

lua - Lua-我如何获得返回?

转载 作者:行者123 更新时间:2023-12-04 16:38:57 26 4
gpt4 key购买 nike

我有兴趣获取函数的任何返回格式。例如

function foo()
return 1
end

local result = foo() -- foo is numeric 1

function foo()
return {1,2,3}
end
local result1, result2, result3 = foo()
local result = foo() -- this is bad as result is `1` but `2` and `3` are lost

function foo()
return 1, 2, 3
end
local result = foo() -- foo is a table with all the numbers, that's ok

我正在构建一个探查器,它将使用代理函数覆盖函数,但是我需要知道返回的数据,然后检查它的 type()并进行相应的访问,但是从代码中可以看出,我无法使用一种方法访问所有3种情况。有没有 ?

最佳答案

如果知道最大退货数量,请使用类似

v1,v2,v3 = foo()

但是您将无法判断 foo返回的是两个还是三个值,最后一个为nil。

健壮的解决方案是收集表中的所有 yield :
v = table.pack(foo())

然后 v.n包含返回值的数量,包括所有nil。

关于lua - Lua-我如何获得返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34949715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com