【问题标题】:What are the functions that look like table in Lua?Lua中有哪些看起来像table的函数?
【发布时间】:2018-12-10 05:35:20
【问题描述】:
我是 Lua 的初学者,我刚刚发现 Lua 中的一些函数看起来像表格(例如 function love.update(dt))。
我想知道这些功能是如何工作的。例如,update 函数是否属于表love?如果是这样,是否应该事先在某处构建此表?
最后,我想问一下如何从 C++ 中调用这些函数。 (请举例说明如何从 C++ 调用 love.update())
【问题讨论】:
标签:
c++
function
lua
lua-table
【解决方案1】:
问题1:更新功能是否属于表爱?
是的。 "function love.update(dt)" 等于 "love.update = function (dt)"。
问题 2:是否应该事先在某处构建此表?
是的。
问题3:如何在C++中调用这些函数?
我假设“爱”可以从全局访问。
void call_love_update (lua_State* l) {
lua_getglobal(l, "love");
lua_getfield(l, -1, "update");
lua_pushnumber(l, 0.016);
lua_call(l, 1, LUA_MULTRET);
}
【讨论】:
-
嗯,一个函数,像其他类型的值一样,“属于”引用它的尽可能多的变量。由表达式love 引用的表中的字段update(如果在执行该行时确实引用了表)将是引用函数值的第一个变量。其他代码可以复制对其他变量的引用。顺便说一句——love 可能是一个变量和/或引用由LÖVE 创建的表。