通过引用调用Lua函数

在 Lua 中,是否可以调用一个已声明值的函数,然后通过引用再次调用它(而无需再次传递值)?

我想做的是创建一个更大的通用函数(反复使用),在调用通用函数时声明传递的值。

如果通用函数失败,我希望它能够回收并尝试使用相同的已使用的值再次调用自身(而无需再次传递它们到函数中)。

如果没让任何人迷失,希望能够得到一些思路和想法。 蒂姆

点赞
用户501459
用户501459

如果您想将参数传递给函数,您需要每次都传递它们。

您可以通过闭包将一些参数绑定到函数上:

function bind(f, ...)
    local args = {...}
    return function()
        return f(unpack(args))
    end
end

foo = bind(print, "This", "is", "a", "test")
foo() --> This    is      a       test
foo() --> This    is      a       test

如果您发布了一些示例代码,回答您的问题会更容易些。

2012-08-15 22:05:53