例如,如果我有像
这样的功能foo = function(self) print ("Foo") end
调用此函数,我会说,foo:()
但是,如何从C调用这种函数?
答案 0 :(得分:4)
foo:()
不合法。
该函数需要在表格中才能使:
调用语法起作用。
tab = {
foo = function(self)
print "Foo"
end
}
tab:foo()
重要的是要知道tab:foo()
只是tab.foo(tab)
的语法糖(仅tab
仅评估一次)。
因此,要手动调用,您只需将对象作为第一个参数传递给自己。