
- •Обработка ошибок и отладка
- •Управление таблицами
- •Управление мета-таблицами
- •Обход механизма метаметодов
- •Управление контекстом функций
- •Загрузка и выполнение кода
- •Сборщик мусора
- •Стандартные библиотеки
- •Математическая библиотека
- •Управление таблицами
- •Вставка и удаление
- •Сортировка
- •Внутреннее представление
- •Поиск и замена
- •Паттерны
- •Ввод/вывод
- •Открытие файловых дескрипторов
- •Переназначение умалчиваемых потоков
- •Форматные строки
- •Операции с файлами
- •Системные вызовы Общие функции
- •Управление файлами
- •Дата и время
- •Другие возможности
- •Базовая библиотека
- •Стандартные библиотеки
Управление таблицами
Эта библиотека поддерживает манипулирование таблицами как обычными массивами. В этом случае считается, что массив индексируется, начиная с 1. Длиной массива считается минимальное n такое, что t[n] ~= nil и t[n+1] == nil.
Вставка и удаление
table.insert(t, [pos, ] val)
Вставляет элемент val в позицию pos таблицы t, сдвигая остальные элементы таблицы вправо. Умалчиваемое значение параметра pos равно n+1 т.е. по умолчанию происходит вставка в конец таблицы.
table.remove(t [, pos])
Удаляет элемент таблицы t в позиции pos, сдвигая остальные элементы таблицы влево. Возвращает значение удаленного элемента. Умалчиваемое значение параметра pos равно длине массива т.е. по умолчанию происходит удаление последнего элемента.
Сортировка
table.sort(t [, comp])
Сортирует элементы таблицы в заданном порядке. Если задана функция comp, то она используется для сравнения элементов. Функция comp должна возвращать true, если первый аргумент меньше второго. После сортировки выполнено неравенство not comp(t[j+1], t[j]) Если функция сравнения не задана, то используется стандартный оператор '<'. Алгоритм сортировки не является устойчивым т.е. порядок равных элементов может измениться.
Другие функции
table.concat(t [, sep [, i [, j]]])
Возвращает значение t[i] .. sep .. t[i+1] ... sep .. t[j]. По умолчанию sep равно пустой строке, i = 1, j = #t. При i > j возвращает пустую строку.
Обработка строк
Позиции символов в строке нумеруются начиная с 1, а отрицательные индексы соответствуют отсчету позиций от конца строки.
Базовые операции
string.len()
Возвращает длину строки. Нулевые символы считаются входящими в строку.
string.rep(s, n)
Возвращает строку, состоящую из n копий строки s.
string.lower(s)
Возвращает копию строки, в которой символы приведены к нижнему регистру.
string.upper(s)
Возвращает копию строки, в которой символы приведены к верхнему регистру.
string.reverse(s)
Возвращает результат инверсии строки s.
Форматное преобразование
string.format(fmt, v1, v2, ...)
Генерирует строку по форматной строке и аргументам по правилам, принятым в ANSI-C. Спецификаторы *, l, L, n, p, h не поддерживаются. Дополнительно введен спецификатор 'q', предназначенный для безопасного вывода строки таким образом, чтобы получить ее корректную запись с учетом правил экранирования символов, принятых в Lua. Спецификаторам c, d, E, e, f, g, G, i, o, u, X, x должны соответствовать числовые аргументы, а спецификаторам q, s — строковые. Спецификатор s не умеет выводить строки, содержащие нулевые символы.
Не поддержанный спецификатор '*' можно эмулировать конкатенацией: вместо %*g использовать выражение "%"..width.."g".
На практике имеет смысл использовать следующие спецификаторы:
%d, %x, %X, %o целые числа %f, %e, %g вещественные числа %s, %q строки |
Внутреннее представление
string.byte(s [, j])
Возвращает код символа в позиции j. По умолчанию j = 1.
string.char(n1, n2, ...)
Возвращает строку, состоящую из символов с кодами n1, n2, ....