Реестр Lua в необходимых модулях

Ключи, установленные в реестре временного состояния, доступ к которому осуществляется в модуле int luaopen_foo(lua_State*), приняты в реестре вызывающего состояния?

Например, допустим, у нас есть этот модуль:

int luaopen_foo(lua_State* state) {
    lua_pushstring("foo");
    lua_pushnumber(10);
    lua_settable(state, LUA_REGISTRYINDEX);
}

И этот модуль требуется кодом lua:

require "foo"

Принят ли ключ foo в реестре из состояния state в реестр из вызывающего состояния?


person Appleshell    schedule 12.06.2014    source источник
comment
Аргумент state, переданный этой функции, не является временным состоянием, это состояние lua, вызывающее эту функцию.   -  person Etan Reisner    schedule 12.06.2014


Ответы (1)


Если хотите, напишите это в файле lua

foo = require "foo"

person fengxing    schedule 14.06.2014
comment
О, конечно, это то, что я обычно делаю. В моем примере в этом просто не было необходимости, поскольку в стек ничего не помещается. (Кстати, ваш ответ должен быть комментарием.) - person Appleshell; 14.06.2014