gpt4 book ai didi

function - 带有 arg 的 Lua 函数传递给带有 arg 的另一个函数

转载 作者:行者123 更新时间:2023-12-01 11:29:45 25 4
gpt4 key购买 nike

这是我正在尝试做的事情的原始想法。

function a(str)
print(str)
end

function b(str)
print(str)
end

function c(str)
print(str)
end

function runfunctions(...)
local lst = {...}
lst.startup()
end

local n1 = a('1')
local n2 = b('2')
local n3 = c('3')

runfunctions(n3,n1,n2)

很少有函数必须作为参数传递给其他函数并按顺序执行。一旦它们中的任何一个被执行,它就不能被执行 msec 所以下一个将被执行,以避免只执行其中的几个而直到最后一个才运行。

最佳答案

你需要闭包。

在您的代码中,函数abc 都执行并且不返回任何内容。相反,返回一个完成工作的闭包(但现在不执行):

function a(str)
return function() print(str) end
end

然后在需要的时候执行函数:

function runfunctions(...)
for _, v in ipairs{...} do
v()
end
end

关于function - 带有 arg 的 Lua 函数传递给带有 arg 的另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33613501/

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