
- •Обработка ошибок и отладка
- •Управление таблицами
- •Управление мета-таблицами
- •Обход механизма метаметодов
- •Управление контекстом функций
- •Загрузка и выполнение кода
- •Сборщик мусора
- •Стандартные библиотеки
- •Математическая библиотека
- •Управление таблицами
- •Вставка и удаление
- •Сортировка
- •Внутреннее представление
- •Поиск и замена
- •Паттерны
- •Ввод/вывод
- •Открытие файловых дескрипторов
- •Переназначение умалчиваемых потоков
- •Форматные строки
- •Операции с файлами
- •Системные вызовы Общие функции
- •Управление файлами
- •Дата и время
- •Другие возможности
- •Базовая библиотека
- •Стандартные библиотеки
Загрузка и выполнение кода
loadstring(str [, name])
Загружает код из строки str и возвращает его как функцию. В случае ошибок при загрузке возвращает nil и сообщение об ошибке. Необязательный параметр name используется как имя кода в сообщениях об ошибках и отладочной информации. Для загрузки и выполнения кода из строки используется идиома assert(loadstring(s))().
loadfile(filename)
Загружает код из файла с именем filename и возвращает его как функцию. В случае ошибок при загрузке возвращает nil и сообщение об ошибке. Функция dofile(filename) эквивалентна выражению assert(loadfile(s))().
dofile(filename)
Выполняет код из файла с именем filename. Возвращает все значения, возвращенные выполненным кодом.
package.loadlib(filename, funcname)
Загружает динамическую библиотеку с именем filename и возвращает lua-функцию, соответствующую функции с именем funcname из этой библиотеки. В случае ошибки загрузки возвращает nil и сообщение об ошибке.
require(packagename)
Загружает и выполняет пакет. В первую очередь имя packagename ищется в таблице _LOADED уже загруженных пакетов. Если имя найдено, то возвращается значение, которое пакет возвратил при первой загрузке. В противном случае производится поиск пакета. Если глобальная переменная LUA_PATH содержит строку, то она используется в качестве пути. Иначе в качестве пути используется значение переменной LUA_PATH из окружения. Если такой переменной нет, то используется умалчиваемый путь ("?;?.lua"). Путь поиска представляет собой последовательность шаблонов, разделенных символом ';' (точка с запятой). Имя пакета подставляется в шаблон на место символа '?'. После выполнения пакета его имя и возвращенное значение прописываются в таблицу _LOADED. Возвращенное пакетом значение также возвращается функцией require(). Если пакет возвратил значение false (и только в этом случае), то прописывается и возвращается значение false. Во всех остальных случаях (даже если пакет возвратил значение nil или не возвратил значения) прописывается и возвращается значение true. Если в таблице _LOADED прописалось значение false, то при дальнейших вызовах функции require() пакет будет заново загружен. Если во время загрузки или выполнения произошла ошибка или если файл не найден, то функция генерирует ошибку.
Сборщик мусора
collectgarbage(opt [, limit])
Общий интерфейс для управления сборщиком мусора. Первый аргумент определяет выполняемое действие:
'stop'
Остановить сборщик мусора.
'restart'
Запустить сборщик мусора.
'collect'
Выполнить сборку мусора.
'count'
Вернуть размер используемой памяти в kb.
Стандартные библиотеки
В глобальном контексте библиотеки представлены в виде таблиц, содержащих функции. Доступны следующие библиотеки:
math математика table таблицы string строки io ввод/вывод os системные вызовы debug средства отладки coroutine сопрограммы |
Математическая библиотека
Математическая библиотека содержит следующие функции:
math.abs math.acos math.asin math.atan math.atan2 math.ceil math.cos math.deg math.exp math.floor math.log math.log10 math.max math.min math.fmod math.pow math.rad math.sin math.sqrt math.tan math.frexp math.ldexp math.random math.randomseed math.modf math.sinh math.cosh math.tanh |
Также определяются переменные math.pi и huge, содержащие значения соответствующих констант (M_PI и HUGE_VAL).
Функции math.deg() и math.rad() осуществляют преобразование между радианами и градусами.
Функции math.min() и math.max() возвращают минимальное и максимальное значение для произвольного числа аргументов.
Функция math.modf() возвращает целую и дробную части аргумента. Функция math.frexp() возвращает нормализованную мантиссу и показатель аргумента. Функция math.ldexp(m, e) строит число по мантиссе и показателю.
Функция math.fmod(x, y) возвращает остаток от деления x на y. Функция math.atan2(a, b) возвращает atan(a/b).
Функция math.random(), вызванная без аргументов, возвращает псевдослучайное число из интервала [0, 1). Эта же функция, вызванная с аргументом n возвращает целое псевдослучайное число из интервала [1, n]. Эта же функция, вызванная с двумя аргументами l, u возвращает целое псевдослучайное число из интервала [l, u]. Функция math.randomseed(n) устанавливает стартовое число генератора псевдослучайных чисел. Ее аргумент рассматривается как целое число. При запуске генератор всегда проинициализирован одинаково и выдает одинаковые последовательности. Для случайной стартовой установки можно использовать оператор
math.randomseed(os.time()) |
Дополнительно математическая библиотека определяет глобальную функцию с именем __pow() для бинарной операции возведения в степень (операция '^').