Встроенные функции Lua¶
Помимо модулей, для работы доступны отдельные функции из библиотеки Lua:
assert() – вызов исключения, если значение аргумента содержит
false;error() – вызов исключения;
next() – вывод следующего элемента таблицы по индексу;
pairs() – итерации по парам ключ-значение (key-value) таблицы;
ipairs() – итерации по парам ключ-значение для числовых ключей;
pcall() – вызов функции в защищенном режиме;
xpcall() – вызов функции в защищенном режиме с указанием обработчика ошибки;
print() – печать в
stdout;select() – выборка аргументов функции или общее число переданных аргументов;
tonumber() – конвертация в число;
tonumber64() – конвертация в 64-битное число;
tostring() – конвертация в строку;
type() – определение типа данных у переданного аргумента;
unpack() – вывод элементов переданной таблицы.
- assert(v[, message])¶
Вызывает исключение, если аргумент
vсодержитnilилиfalse.- Параметры
v (boolean) – аргумент или условие, значение которого проверяется
message (string) – сообщение об ошибке. Значение по умолчанию:
assertion failed!.
- Результат
v, если аргумент содержитtrue;сообщение об ошибке, если аргумент содержит
false.
- error(message[, level])¶
Завершает последнюю вызванную защищенную функцию и вызывает исключение. Обычно при этом в начало сообщения добавляется информация о месте возникновения ошибки.
- Параметры
message (any) – сообщение об ошибке
level (number) –
место возникновения (уровень) ошибки. Возможные уровни:
0– уровень ошибки не добавляется в сообщение;1(по умолчанию) – уровень ошибки в месте вызова функцииerror();2– уровень ошибки в месте вызова функции, которая вызвала функциюerror().
- Результат
none
- next(t[, index])¶
Позволяет проходить по всем полям таблицы
t. Функцию можно использовать, чтобы проверить, пустая ли таблица.- Параметры
t (table) – таблица
index (number) – индекс элемента в таблице. Если аргумент
t– таблица, аindex– индекс элемента в в таблице, тоnext()возвращает индекс следующего после него элемента и связанное с ним значение. Если аргумент пропущен, он интерпретируется какnil. Если в аргументеindexпереданnil, функция возвращает начальный индекс и значение для него. Если передан индекс последнего элемента таблицы или таблица пустая, возвращаетсяnil.
- Результат
индекс элемента таблицы + связанное с ним значение или
nil
- pairs(t)¶
Позволяет выполнять итерации по парам ключ-значение (key-value) таблицы
t.- Параметры
t (table) – таблица, по которой производится итерация
- Результат
функция next()
таблица
tnil
- ipairs(t)¶
Позволяет выполнять итерации по парам ключ-значение (key-value) таблицы
t. Использует числовые ключи, другие ключи игнорируются.- Параметры
t (table) – таблица, по которой производится итерация
- Результат
функция итерации
таблица
tnil
- pcall(function_name, arg1, ···)¶
Вызывает функцию в защищенном режиме с заданными аргументами.
pcallобрабатывает функцию и возвращает код состояния –trueилиfalse(boolean).- Параметры
function_name (string) – имя вызываемой функции
arg1 (any) – аргумент функции
- Результат
true, если вызов функции был успешным;false, если возникла ошибка.
Если ошибок нет, помимо статуса возвращаются все результаты вызова. Если ошибки есть, помимо статуса возвращается результат выполнения
err.
- xpcall(function_name, err, arg1, ...)¶
Как и pcall(), вызывает функцию в защищенном режиме с заданными аргументами, но еще позволяет установить новый обработчик ошибок
err.xpcallобрабатывает функцию и возвращает код состояния –trueилиfalse(boolean). В случае возникновения ошибки вызывается обработчикerrс исходным объектом ошибки и возвращает код состояния (boolean).- Параметры
function_name (string) – имя вызываемой функции
err (string) – обработчик ошибок
arg1 (any) – аргумент функции
- Результат
true, если вызов функции был успешным;false, если возникла ошибка.
- print(...)¶
Принимает любое количество аргументов и печатает их значения в
stdout. Для конвертации значений аргументов в строки используется функция tostring().- Результат
none
- select(index, ...)¶
Возвращает значения аргументов функции или общее число переданных аргументов.
- Параметры
index (string/number) – индекс, который содержит число или строку
#arg (any) – аргумент, переданный в функцию
- Результат
все аргументы после аргумента с заданным индексом, если
index– число;общее количество переданных аргументов, если
index– строка#.
- tonumber(value)¶
Конвертирует заданное значение в число.
- Параметры
value (string/number) – строка или Lua-число
- Результат
конвертированное значение
- Тип результата
number
- tonumber64(value)¶
Конвертирует заданное значение в 64-битное целое число. Подробнее о функции
tonumber64()можно прочитать в справочнике по встроенным модулям.- Параметры
value (string/number) – строка или Lua-число. На вход принимаются числа в десятичной, двоичной и шестнадцатеричной системах счисления. Если передать число с дробной частью (например,
tonumber64('2.2')) в виде строки, функция вернетnull.- Результат
конвертированное значение
- Тип результата
number
- tostring(value)¶
Конвертирует заданное значение в строку.
- Параметры
value (any) – строка или Lua-число
- Результат
конвертированное значение
- Тип результата
string
- type(value)¶
Определяет тип данных у переданного аргумента.
- Параметры
value (any) – аргумент, тип которого требуется определить
- Результат
тип данных в формате строки
- Тип результата
string
- unpack(list[, i, j])¶
Возвращает элементы для переданной таблицы. Если индексы элементов
iиjпропущены, возвращает все элементы таблицыlist.- Параметры
list (table) – таблица
i (number) – индекс первого возвращаемого элемента. Значение по умолчанию:
1.j (number) – индекс последнего возвращаемого элемента. По умолчанию,
j– общее количество элементов таблицыlist(длина списка).
- Результат
элементы таблицы