Справочное руководство по языку Lua 5.1 :: 5 - Обработка таблиц




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.