附加到函数lua

use*_*069 5 lua function append dynamic

我有一个函数,我想在程序运行时动态添加.

假设我有Foo功能:

function foo()
    Function1()
    Function2()
    Function3()
end
Run Code Online (Sandbox Code Playgroud)

我想将Foo()更改为:

function foo()
    Function1()
    Function2()
    Function3()
    Function4()
end
Run Code Online (Sandbox Code Playgroud)

后来在该计划中.有没有办法做到这一点?

lhf*_*lhf 7

去做就对了.你写的代码工作得很好.Lua中的函数可以根据需要重新定义.

如果你不知道是什么foo,你可以这样做:

do
  local old = foo
  foo = function () old() Function4() end
end
Run Code Online (Sandbox Code Playgroud)

或者使用功能表可能更清楚:

local F={ Function1, Function2, Function3 }

function foo()
  for i=1,#F do F[i]() end
end
Run Code Online (Sandbox Code Playgroud)

后来,做

F[#F+1]=Function4
Run Code Online (Sandbox Code Playgroud)

而且你不需要重新定义foo.