gpt4 book ai didi

syntax - lua (Syntax) : Calling a function that returns more than 1 value, 并使用这些值作为参数,但没有额外的变量赋值行?

转载 作者:行者123 更新时间:2023-12-04 14:05:36 24 4
gpt4 key购买 nike

我有一种情况需要调用以下内容:

function xy(i)
return i,i+8
end

并在另一个函数中使用它的输出。

function addition(x,y)
return x+y
end

有没有办法让它比这样写更优雅地工作:

i.e. i=10; x,y=xy(10); addition(x,y)--28

我正在寻找类似的东西:

i.e. i=10; addition(xy(10)--where I somehow get two arguments here)

这两个函数都是在其他地方使用的泛型,合并是不可行的,可能需要对它们返回的内容/方式进行编辑。

最佳答案

至少从 Lua 5.1 开始,以下作品“按要求”。

When a function call is the last (or the only) argument to another call, all results from the first call go as arguments. [There are several examples using print.]

function xy(i)
return i,i+8
end

function addition(x,y)
return x+y
end


addition(xy(10)) -- 28

在需要更多灵 active 的类似情况下分解可能有用的更冗长的方法是将结果转换为表格,然后使用 unpack(在 5.1 中添加)。这种方法是 result -> table -> unpack -> arguments (per above).

addition(unpack({xy(10)})) -- 28

这两种方法都在 replit 中.

关于syntax - lua (Syntax) : Calling a function that returns more than 1 value, 并使用这些值作为参数,但没有额外的变量赋值行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68628333/

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