我想将静态类函数绑定到lua。 如您所知,静态类函数与类函数有所不同。 所以lua中的函数调用代码应该是这样的......
//C++
lua_tinker::def(L, "Foo_Func", &Foo::Func);
//Lua
Foo_Func()
但是我想像这样在lua中调用函数
//Lua
Foo.Func()
有没有办法像这样使用? Lua表可能会有所帮助。但我找不到任何参考资料。
答案 0 :(得分:10)
是的,这可以通过表来完成,实际上当您使用require
导入它们时,大多数模块的工作方式。
Foo = {} -- make a table called 'Foo'
Foo.Func = function() -- create a 'Func' function in stored in the table
print 'foo' -- do something
end
Foo.Func() -- call the function
答案 1 :(得分:4)
我认为你会发现PiL chapter 26.2最有趣。 如果您将库编译为与表相同的名称(所以filename == modulename),那么您可以只需要()模块。