gpt4 book ai didi

function - 合并两个可变函数结果

转载 作者:行者123 更新时间:2023-12-01 11:40:41 26 4
gpt4 key购买 nike

假设我有两个这样的可变参数函数:

function a(num)
if num == 1 then
return 1
else
return 1, 2
end
end

function b(num)
if num == 1 then
return 1
else
return 1, 2
end
end

然后我想构建另一个函数,它同时调用 ab 并返回 a 的所有结果,然后是b。我想写这样的东西:

function c(num)
return a(num), b(num)
end

但它只返回 a 的第一个结果,然后是 b 的所有结果。我该怎么做?

最佳答案

只能返回表达式列表中最后一个函数的所有结果;其他的将被截断为一个结果。

因此,这

function f1()
return 1
end

function f2()
return 2, 3
end

print(f1(), f2())

按预期打印 1 2 3,但是这

print(f2(), f1())

打印 2 1,因为 f2() 被截断为一个结果。

作为解决方法,如果您提前知道结果的数量,您可以这样做

local a, b = f1()
local c, d = f2()
return a, b, c, d

或者对于任意数量的结果,你可以这样做

local t1 = {f1()}
local t2 = {f2()}
-- Append t2 to t1
return unpack(t1)

关于function - 合并两个可变函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032870/

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