【问题标题】: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 创建的表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 2015-10-19
    相关资源
    最近更新 更多