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