Встроенные функции 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()
таблица
t
nil
- ipairs(t)¶
Позволяет выполнять итерации по парам ключ-значение (key-value) таблицы
t
. Использует числовые ключи, другие ключи игнорируются.- Параметры
t (table) – таблица, по которой производится итерация
- Результат
функция итерации
таблица
t
nil
- 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
(длина списка).
- Результат
элементы таблицы