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

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

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

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

Базовая библиотека

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

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

Error Handling

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

2

Memory Management

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

3

dofile ([filename])

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

4

_G

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

5

getfenv ([f])

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

6

getmetatable (object)

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

7

ipairs (t)

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

8

load (func [, chunkname])

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

9

loadfile ([filename]))

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

10

loadstring (string [, chunkname])

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

11

next (table [, index])

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

12

pairs (t)

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

13

print (...)

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

14

rawequal (v1, v2)

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

15

rawget (table, index)

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

16

rawset (table, index, value)

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

17

select (index, ...)

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

18

setfenv (f, table)

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

19

setmetatable (table, metatable)

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

20

tonumber (e [, base])

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

21 год

tostring (e)

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

22

type (v)

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

23

unpack (list [, i [, j]])

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

24

_VERSION

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

25

Coroutines

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

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

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

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

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

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

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

Файловый ввод и вывод

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

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

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