Lua使用其名称调用函数(字符串)

时间:2017-05-02 02:49:46

标签: function oop lua

我试图通过它的名字来调用一个函数但是,因为我试图调用的函数是一个方法,所以我想要的所有args都是nil。我怎么能用所有的args调用这个函数?

以下是我想要做的一个小例子:

local s = "hi"    
local test = {}

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

test[s]("hello")

打印 - >零

1 个答案:

答案 0 :(得分:1)

此:

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

完全等同于:

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

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

test[s](test, "hello")

或者看到未使用test参数,您也可以这样称呼它:

test[s](nil, "hello")

希望这有帮助。