Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[Обучение] Базовая библиотека Lua.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
57.24 Кб
Скачать

Загрузка и выполнение кода

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() для бинарной операции возведения в степень (операция '^').