如何从Lua中作为参数传递给函数的函数中获取函数的参数?

问题描述 投票:0回答:1

我正在尝试使用函数装饰器来装饰多个函数,并且我想获取要装饰的函数的参数(在这种情况下,在参数中称为fun),并且我希望以返回函数的参数(在本例中为func)从参数(称为fun)获得的函数的参数所以它可能看起来像这样:

local function decorator(fun)
  local function func(fun.args)
    -- Write here custom behaviour to add to the function 'fun'

    fun(fun.args)
  end

  return func
end

但是,显然没有fun.args之类的东西可以更准确地向您解释我想要的东西。请记住这一点,我不知道我要装饰的功能,而且我要装饰的功能可能彼此不同,因此这是将自定义行为添加到功能的一种方式(如您所见)在上面的代码示例中)

所以,先生,有没有办法做我需要做的事情?预先非常感谢!

lua decorator
1个回答
0
投票

Lua通过...支持varargs。在您的情况下,可以这样使用它:

local function decorator(fun)
  local function func(...)
    -- Write here custom behaviour to add to the function 'fun'

    fun(...)
  end

  return func
end

并且如果您想使用“自定义行为”部分中的参数,则可以执行local args = {...},然后以数字方式访问它们(例如args[1]将包含第一个参数)。

© www.soinside.com 2019 - 2024. All rights reserved.