Библиотека для работы с таблицами, реализованными в виде связанных списков.
Описание
Данная библиотека предоставляет функции и методы для управления связанными списками. Она предназначена для работы с неиндексированными таблицами, оптимальными для сценариев типа «первым пришёл — первым ушёл» (FIFO) или «последним пришёл — первым ушёл» (LIFO), например, для стеков или систем кэширования.
Библиотека достаточно гибкая и позволяет быстро вставлять элементы в отсортированном виде, используя индексацию по позициям, например, «A», «B»… «Z» и т.п., что облегчает вставку новых записей в определённые подтаблицы. Однако из-за отсутствия прямого доступа к файловому вводу-выводу в Rift не рекомендуется использовать её для работы с большими базами данных.
Переменные, возвращаемые функциями
- Table — таблица LibSata.
- Object — объект таблицы.
- Data — данные, хранящиеся в объекте; могут иметь любой тип, включая пользовательские.
Команды LibSata
Table = LibSata:Create()
Создаёт новую базовую таблицу.for Object, Data in LibSata.EachIn(Table) do end
Итерирует по таблице с помощью цикла Luafor do end. Для более естественного перебора можно использовать локальную переменнуюlocal each = LibSata.EachIn.
Создание объектов таблицы
Object = Table:Add(Data)
Создаёт новый объект и добавляет его в конец таблицы.Object = Table:InsertFirst(Data)
Создаёт новый объект и вставляет его в начало таблицы.Object = Table:InsertBefore(Object, Data)
Создаёт новый объект и вставляет его перед указанным объектом таблицы.Object = Table:InsertAfter(Object, Data)
Создаёт новый объект и вставляет его после указанного объекта таблицы.
Получение объектов таблицы
Object, Data = Table:First()
Возвращает первый объект таблицы и его данные.Object, Data = Table:Last()
Возвращает последний объект таблицы и его данные.Object, Data = Table:After(Object)
Возвращает следующий объект после указанного илиnil, если объект последний.Object, Data = Table:Before(Object)
Возвращает предыдущий объект перед указанным илиnil, если объект первый.
Управление таблицей
Data = Table:Remove(Object)
Удаляет указанный объект из таблицы и возвращает его данные.Data = Table:RemoveFirst()
Удаляет первый объект таблицы и возвращает его данные.Data = Table:RemoveLast()
Удаляет последний объект таблицы и возвращает его данные.Number = Table:Count()
Возвращает количество объектов в таблице.nil = Table:Clear()
Очищает все объекты таблицы, оставляя саму таблицу существующей.nil = Table:Delete()
Удаляет таблицу из памяти, очищая все её объекты. Внешние ссылки на объекты или таблицу нужно установить вnil.





