TDG Documentation portal logo
Помощь
Обновлена 22 июня 2026 г. в 15:31

Встроенные функции 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 (длина списка).

Возвращает

элементы таблицы