5 – Стандартные библиотеки
Стандартные Lua библтотеки содержат часто используемые функции, которые выполняются непосредственно в C API. Некоторые из этих функций предоставляют важные сервисы языка (например, type и getmetatable); другие обеспечивают доступ к "внешним" сервисам (например, ввод/вывод); частично они реализованы на Lua, однако часто используемые и имеющие критическое время выполнения, реализованы на C (например, sort).
Все библиотеки вызываются через официальный C API и выполняются как отдельные C модули. В настоящий момент, Lua имеет следующие стандартные библиотеки:
· базовая библиотека (basic library);
· библиотека пакетов (package library);
· работа со строками (string manipulation);
· работа с таблицами (table manipulation);
· математические функции (sin, log, и т.п.);
· ввод/вывод;
· работа с операционной системой (operating system
facilities);
· отладка (debug facilities).
Каждая библиотека, исключая базовую и библиотеку пакетов, представляет все
функции как поля глобальной таблицы или как методы объектов.
Для получения доступа к этим библиотекам, C хостовая программа должна вызвать функцию luaL_openlibs, которая открывает все стандартные библиотеки. Можно также загрузить каждую библиотеку отдельно: luaopen_base (для базовой библиотеки), luaopen_package (для библиотеи пакетов), luaopen_string (для библиотеки работы со строками), luaopen_table (для библиотеки работы с таблицами), luaopen_math (для библиотеки математических функций), luaopen_io (для ввода/вывода и библиотек работы с операционной системой), и luaopen_debug (для библиотеки отладки). Эти функции описаны в lualib.h и не должны вызываться непосредственно: их необходимо вызывать как любую другую C функцию Lua C, например с помощью lua_call.
|