Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[Обучение] Базовая библиотека Lua.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
57.24 Кб
Скачать

Управление таблицами

Эта библиотека поддерживает манипулирование таблицами как обычными массивами. В этом случае считается, что массив индексируется, начиная с 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, ....