Какие функции выглядят как таблица в Lua? - PullRequest
0 голосов
/ 02 июля 2018

Я новичок в Lua, и я только что обнаружил, что некоторые функции выглядят как таблица (например, function love.update(dt)) в Lua.

Интересно, как работают эти функции. Например, функция update принадлежит таблице love? Если да, то нужно ли где-то заранее строить эту таблицу?

Наконец, я хотел бы спросить, как вызывать такие функции из C ++. (Пожалуйста, покажите мне пример, как позвонить love.update() из C ++)

1 Ответ

0 голосов
/ 02 июля 2018

Вопрос 1: относится ли функция обновления к таблице love?
Да. «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);
}
...