如何调用将self作为C参数的lua函数?

如何调用将self作为C参数的lua函数?,c,function,lua,colon,C,Function,Lua,Colon,例如,如果我有如下函数 foo = function(self) print ("Foo") end 要调用这个函数,我会说,foo:() 但是,如何从C调用此类函数?foo:()是不合法的 该函数需要位于表中,才能使:调用语法起作用 tab = { foo = function(self) print "Foo" end } tab:foo() 需要知道的重要一点是tab:foo()只是tab.foo(tab)的语法糖(仅tab只计算一次) 因此,要手动调用

例如,如果我有如下函数

foo = function(self) print ("Foo") end
要调用这个函数,我会说,
foo:()

但是,如何从C调用此类函数?

foo:()
是不合法的

该函数需要位于表中,才能使
调用语法起作用

tab = {
    foo = function(self)
        print "Foo"
    end
}
tab:foo()
需要知道的重要一点是
tab:foo()
只是
tab.foo(tab)
的语法糖(仅
tab
只计算一次)

因此,要手动调用它,您只需要自己将对象作为第一个参数传递