Учебники

Lua — Стандартные библиотеки

Стандартные библиотеки Lua предоставляют богатый набор функций, которые реализуются непосредственно с C API и встроены в язык программирования Lua. Эти библиотеки предоставляют сервисы на языке программирования Lua, а также сторонние сервисы, такие как операции с файлами и БД.

Эти стандартные библиотеки, встроенные в официальный C API, предоставляются как отдельные модули C. Это включает в себя следующее —

  • Основная библиотека, которая включает в себя подпрограмму сопрограммы
  • Библиотека модулей
  • Струнные манипуляции
  • Таблица манипуляций
  • Математическая библиотека
  • Ввод и вывод файла
  • Средства операционной системы
  • Средства отладки

Основная библиотека

Мы использовали базовую библиотеку на протяжении всего урока по различным темам. В следующей таблице приведены ссылки на связанные страницы и перечислены функции, которые рассматриваются в различных частях этого учебного пособия по Lua.

Sr.No. Библиотека / Метод и Цель
1

Обработка ошибок

Включает в себя функции обработки ошибок, такие как assert, error, как описано в Lua — Error Errorling .

2

Управление памятью

Включает функции автоматического управления памятью, связанные со сборкой мусора, как описано в Lua — Сборка мусора .

3

dofile ([имя файла])

Он открывает файл и выполняет содержимое файла как чанк. Если параметр не передан, то эта функция выполняет содержимое стандартного ввода. Ошибки будут переданы вызывающей стороне.

4

Таким образом, глобальная переменная содержит глобальную среду (то есть _G._G = _G). Сам Lua не использует эту переменную.

5

getfenv ([f])

Возвращает текущую среду, используемую функцией. f может быть функцией Lua или числом, которое определяет функцию на этом уровне стека. Уровень 1 — это функция, вызывающая getfenv. Если данная функция не является функцией Lua или если f равно 0, getfenv возвращает глобальную среду. Значением по умолчанию для f является 1.

6

getmetatable (объект)

Если объект не имеет метатаблицы, возвращает ноль. В противном случае, если у метатаблицы объекта есть поле «__metatable», возвращается соответствующее значение. В противном случае возвращает метатаблицу данного объекта.

7

ipairs (t)

Эта функция выбирает индексы и значения таблиц.

8

load (func [, chunkname])

Загружает кусок, используя функцию func, чтобы получить его части. Каждый вызов func должен возвращать строку, которая объединяется с предыдущими результатами.

9

файл загрузки ([имя файла]))

Аналогичен загрузке, но получает фрагмент из имени файла или из стандартного ввода, если имя файла не указано.

10

loadstring (строка [, chunkname])

Аналогично загрузке, но получает фрагмент из заданной строки.

11

следующий (таблица [, индекс])

Позволяет программе пересекать все поля таблицы. Его первый аргумент — это таблица, а второй аргумент — это индекс в этой таблице. next возвращает следующий индекс таблицы и связанное с ней значение.

12

пары (т)

Приостанавливает запущенную сопрограмму. Параметр, передаваемый этому методу, действует как дополнительные возвращаемые значения функции возобновления.

13

Распечатать (…)

Приостанавливает запущенную сопрограмму. Параметр, передаваемый этому методу, действует как дополнительные возвращаемые значения функции возобновления.

14

rawequal (v1, v2)

Проверяет, равен ли v1 v2, не вызывая метаметод. Возвращает логическое значение.

15

rawget (таблица, индекс)

Получает реальное значение таблицы [index], не вызывая метаметод. таблица должна быть таблицей; Индекс может быть любым значением.

16

rawset (таблица, индекс, значение)

Устанавливает реальное значение таблицы [индекс] в значение, не вызывая метаметод. table должен быть таблицей, индексировать любое значение, отличное от nil, и value любое значение Lua. Эта функция возвращает таблицу.

17

выберите (индекс, …)

Если index является числом, возвращает все аргументы после индекса номера аргумента. В противном случае index должен быть строкой «#», а select возвращает общее количество дополнительных аргументов, которые он получил.

18

setfenv (f, таблица)

Устанавливает среду, которая будет использоваться данной функцией. f может быть функцией Lua или числом, которое определяет функцию на этом уровне стека. Уровень 1 — это функция, вызывающая setfenv. setfenv возвращает данную функцию. В качестве особого случая, когда f равно 0, setfenv изменяет среду работающего потока. В этом случае setfenv не возвращает значений.

19

setmetatable (таблица, метатабельный)

Устанавливает метатаблицу для данной таблицы. (Вы не можете изменить метатабель других типов из Lua, только из C.) Если метатабил равен нулю, удаляет метатабиль данной таблицы. Если исходный метатабль имеет поле «__metatable», возникает ошибка. Эта функция возвращает таблицу.

20

tonumber (e [, base])

Пытается преобразовать свой аргумент в число. Если аргумент уже является числом или строкой, конвертируемой в число, то tonumber возвращает это число; в противном случае возвращается ноль.

21

tostring (e)

Получает аргумент любого типа и преобразует его в строку в приемлемом формате. Для полного контроля над тем, как числа конвертируются, используйте string.format.

22

тип (v)

Возвращает тип единственного аргумента, закодированного в виде строки. Возможные результаты этой функции: «nil» (строка, а не значение nil), «number», «string», «boolean», «table», «function», «thread» и «userdata».

23

распаковать (список [, i [, j]])

Возвращает элементы из данной таблицы.

24

_ВЕРСИЯ

Глобальная переменная (не функция), которая содержит строку, содержащую текущую версию интерпретатора. Текущее содержимое этой переменной — «Lua 5.1».

25

Сопрограммы

Включает функции манипулирования сопрограммой, как описано в Lua — Coroutines .

Обработка ошибок

Включает в себя функции обработки ошибок, такие как assert, error, как описано в Lua — Error Errorling .

Управление памятью

Включает функции автоматического управления памятью, связанные со сборкой мусора, как описано в Lua — Сборка мусора .

dofile ([имя файла])

Он открывает файл и выполняет содержимое файла как чанк. Если параметр не передан, то эта функция выполняет содержимое стандартного ввода. Ошибки будут переданы вызывающей стороне.

Таким образом, глобальная переменная содержит глобальную среду (то есть _G._G = _G). Сам Lua не использует эту переменную.

getfenv ([f])

Возвращает текущую среду, используемую функцией. f может быть функцией Lua или числом, которое определяет функцию на этом уровне стека. Уровень 1 — это функция, вызывающая getfenv. Если данная функция не является функцией Lua или если f равно 0, getfenv возвращает глобальную среду. Значением по умолчанию для f является 1.

getmetatable (объект)

Если объект не имеет метатаблицы, возвращает ноль. В противном случае, если у метатаблицы объекта есть поле «__metatable», возвращается соответствующее значение. В противном случае возвращает метатаблицу данного объекта.

ipairs (t)

Эта функция выбирает индексы и значения таблиц.

load (func [, chunkname])

Загружает кусок, используя функцию func, чтобы получить его части. Каждый вызов func должен возвращать строку, которая объединяется с предыдущими результатами.

файл загрузки ([имя файла]))

Аналогичен загрузке, но получает фрагмент из имени файла или из стандартного ввода, если имя файла не указано.

loadstring (строка [, chunkname])

Аналогично загрузке, но получает фрагмент из заданной строки.

следующий (таблица [, индекс])

Позволяет программе пересекать все поля таблицы. Его первый аргумент — это таблица, а второй аргумент — это индекс в этой таблице. next возвращает следующий индекс таблицы и связанное с ней значение.

пары (т)

Приостанавливает запущенную сопрограмму. Параметр, передаваемый этому методу, действует как дополнительные возвращаемые значения функции возобновления.

Распечатать (…)

Приостанавливает запущенную сопрограмму. Параметр, передаваемый этому методу, действует как дополнительные возвращаемые значения функции возобновления.

rawequal (v1, v2)

Проверяет, равен ли v1 v2, не вызывая метаметод. Возвращает логическое значение.

rawget (таблица, индекс)

Получает реальное значение таблицы [index], не вызывая метаметод. таблица должна быть таблицей; Индекс может быть любым значением.

rawset (таблица, индекс, значение)

Устанавливает реальное значение таблицы [индекс] в значение, не вызывая метаметод. table должен быть таблицей, индексировать любое значение, отличное от nil, и value любое значение Lua. Эта функция возвращает таблицу.

выберите (индекс, …)

Если index является числом, возвращает все аргументы после индекса номера аргумента. В противном случае index должен быть строкой «#», а select возвращает общее количество дополнительных аргументов, которые он получил.

setfenv (f, таблица)

Устанавливает среду, которая будет использоваться данной функцией. f может быть функцией Lua или числом, которое определяет функцию на этом уровне стека. Уровень 1 — это функция, вызывающая setfenv. setfenv возвращает данную функцию. В качестве особого случая, когда f равно 0, setfenv изменяет среду работающего потока. В этом случае setfenv не возвращает значений.

setmetatable (таблица, метатабельный)

Устанавливает метатаблицу для данной таблицы. (Вы не можете изменить метатабель других типов из Lua, только из C.) Если метатабил равен нулю, удаляет метатабиль данной таблицы. Если исходный метатабль имеет поле «__metatable», возникает ошибка. Эта функция возвращает таблицу.

tonumber (e [, base])

Пытается преобразовать свой аргумент в число. Если аргумент уже является числом или строкой, конвертируемой в число, то tonumber возвращает это число; в противном случае возвращается ноль.

tostring (e)

Получает аргумент любого типа и преобразует его в строку в приемлемом формате. Для полного контроля над тем, как числа конвертируются, используйте string.format.

тип (v)

Возвращает тип единственного аргумента, закодированного в виде строки. Возможные результаты этой функции: «nil» (строка, а не значение nil), «number», «string», «boolean», «table», «function», «thread» и «userdata».

распаковать (список [, i [, j]])

Возвращает элементы из данной таблицы.

_ВЕРСИЯ

Глобальная переменная (не функция), которая содержит строку, содержащую текущую версию интерпретатора. Текущее содержимое этой переменной — «Lua 5.1».

Сопрограммы

Включает функции манипулирования сопрограммой, как описано в Lua — Coroutines .

Библиотека модулей

Библиотека модулей предоставляет основные функции для загрузки модулей в Lua. Он экспортирует одну функцию напрямую в глобальную среду: требуется. Все остальное экспортируется в пакет таблицы. Подробности о библиотеке модулей описаны в предыдущей главе Lua — Модули .

Струнные манипуляции

Lua предоставляет богатый набор функций для работы со строками. В предыдущем уроке по Lua — Strings это подробно описано.

Таблица манипуляций

Lua зависит от таблиц почти во всех операциях. В предыдущем уроке Lua — Tables это подробно описано.

Ввод и вывод файла

Нам часто требуется средство хранения данных при программировании, и это обеспечивается стандартными библиотечными функциями для файлового ввода-вывода в Lua. Это обсуждалось в предыдущем уроке Lua — File I / O.

Средства отладки

Lua предоставляет библиотеку отладки, которая предоставляет нам все примитивные функции для создания нашего собственного отладчика. Это обсуждалось ранее в Lua — Руководство по отладке .