Справочное руководство по языку Lua 5.1 :: 5.5 - Обработка таблиц



5.5 – Обработка таблиц

Эта библиотека предоставляет основные функции для обработки таблиц. Все функции включены в таблицу table..

Большинство функций в библиотеке таблиц предполагают что таблица является массивом или списком. Для этих функций, когда мы говорим о параметре "длина" таблицы, мы имеем в виду результат оператора length.


table.concat (table [, sep [, i [, j]]])

Задан массив в котором все элементы – строки или числа, возвращает table[i]..sep..table[i+1] ··· sep..table[j]. Значение по умолчанию для sep – пустая строка, значение по умолчанию для i – 1, а для j – длина таблицы. Если i больше j, функция возвращает пустую строку.


table.insert (table, [pos,] value)

Вставляет элемент value в позицию pos в table, сдвигая вверх остальные элементы. Значение по умолчанию для pos равно n+1, где n это длина таблицы (см.§2.5.5), т.о.вызов table.insert(t,x) добавляет x в конец таблицы t.


table.maxn (table)

Возвращает наибольший положительный числовой индекс заданной таблицы, или zero если таблица не имеет положительных числовых индексов. (Для выполнения запроса эта функция перебирает все индексы таблицы.)


table.remove (table [, pos])

Удаляет из table элемент в позиции pos, сдвигая вниз остальные элементы, если это необходимо. Возвращает значение удаленного элемента. Значение по умолчанию для – n, где n – длина таблицы, т.о. вызов table.remove(t) удаляет последний элементы таблицы t. (Примечание: использование insert-remove со значениями по умолчанию позволяет работать с таблицей как со стандартным LIFO – стеком)


table.sort (table [, comp])

Сортирует элементы таблицы в заданном порядке, внутри таблицы, начиная с table[1] и заканчивая table[n], где n – длина таблицы. Если параметр comp задан, то он должен быть функцией, которая для двух получаемых параметров возвращает true если первый из них меньше второго (т.о. not comp(a[i+1],a[i]) будет верно для любого i будет давать true после окончания сортировки). Если comp не задан, то вместо него будет использован стандартынй оператор Lua "<".

Алгоритм сортировки не стабилен; в том смысле, что равные элементы могут быть переставлены в процессе сортировки.