Lua 使用字符串名调用函数

我正在尝试通过函数名调用一个函数,但是,因为我要调用的函数是一个方法,我试图获取的所有参数都是 nil。我应该如何能够调用此函数和所有参数?

下面是我尝试做的一个小例子:

local s = "hi"
local test = {}

function test:hi(n)
    print(n)
end

test[s]("hello")

print --> nil

点赞
用户5287638
用户5287638

这个:

function test:hi(n)
  print(n)
end

与这个完全等价:

function test.hi(self, n)
  print(n)
end

所以你可以通过这样做来获得你想要的结果:

test[s](test, "hello")

或者既然 test 参数没有被使用,你也可以像这样调用它:

test[s](nil, "hello")

希望这有所帮助。

2017-05-02 04:28:12