> module (name [, ···])
Создает модуль. Если package.loaded[name] содержит таблицу, то эта таблица является модулем.
Если name – составное имя (т.е., компоненты имени разделены точками),
module создает таблицы для каждого компонента. Например, если name равно a.b.c,
то module сохраняет модуль в поле "c" поля "b" глобального объекта "a".
Данная функция может получать дополнительные опции options после имени модуля,
где каждая опция является функцией, которая будет применена к модулю.
> require (modname)
Загружает данный модуль. Функция начинается с проверки таблицы package.loaded
для определения загружен модуль modname или нет. Если загружен, то require возвращает
значение, хранящееся в package.loaded[modname]. В противном случае, она пытается найти
загрузчик (loader) для данного модуля. При поиске загрузчика, require сначала запрашивает
package.preload[modname]. Если там есть значение, это значение (оно должно быть функцией)
является загрузчиком. В противном случае require ищет Lua загрузчик, используя путь,
хранящийся в package.path.
> package.cpath
Путь, используемый в require для поиска C загрузчика.
> package.path
Путь, используемый функцией require для поиска Lua загрузчика.
При старте, Lua инициализирует эту переменную значением переменной окружения LUA_PATH
> package.loaded
Данная таблица используется функцией require для проверки, загружен модуль или нет.
> package.preload
Таблица, хранящая загрузчики для модулей
> package.loadlib (libname, funcname)
Динамическое связывание хостовой программы с C библиотекой libname.
Внутри этой библиотеки производится поиск функции с именем funcname
и она возвращается как C функция.
(funcname должно соответствовать протоколу lua_CFunction).
> package.seeall (module)
Устанавливает метатаблицу для модуля module с полем __index ,
ссылающимся на глобальное окружение, т.е. этот модуль наследует глобальное окружение.
> Пример модуля (5.3):
local mymodule = {}
local function private()
print("in private function")
end
function mymodule.foo()
print("Hello World!")
end
function mymodule.bar()
private()
mymodule.foo() -- need to prefix function call with module
end
return mymodule
Lua Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor