我如何从C中调用需要self作为参数的Lua函数?

例如,如果我有一个函数:

foo = function(self) print ("Foo") end

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

但是,如何从C中调用这种类型的函数?

点赞
用户258523
用户258523

foo:()不合法。

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

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

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

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

2015-04-09 15:28:27