我如何调用lua函数将自身作为C中的参数?

时间:2015-04-09 15:25:21

标签: c function lua colon

例如,如果我有像

这样的功能
foo = function(self) print ("Foo") end

调用此函数,我会说,foo:()

但是,如何从C调用这种函数?

1 个答案:

答案 0 :(得分:4)

foo:()不合法。

该函数需要在表格中才能使:调用语法起作用。

tab = {
    foo = function(self)
        print "Foo"
    end
}
tab:foo()

重要的是要知道tab:foo()只是tab.foo(tab)的语法糖(仅tab仅评估一次)。

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