Функции для работы с коллекциями объектов (COLLECTION)

Функции из этой группы предназначены для оперирования переменными типа COLLECTION.

Коллекция является списком объектов, с индексацией по целочисленному ключу (начиная с 0).  Коллекция может содержать элементы любых типов, в том числе и переменные типа COLLECTION. Коллекция может быть неоднородной, т.е. содержать объекты разных типов. В текущей реализации доступ к элементу коллекции по индексу осуществляется за линейное время.

CREATE_COLLECTION

Первая функция создает пустую коллекцию, вторая является конструктором копирования.

COLLECTION CREATE_COLLECTION ()

COLLECTION CREATE_COLLECTION (COLLECTION IntValue)

GET_COLLECTION_COUNT

Функция возвращает количество элементов в коллекции.

DOUBLE GET_COLLECTION_COUNT (COLLECTION Name)

REMOVE_COLLECTION_ITEM

Функция удаляет элемент с индексом «index» из коллекции «Name».

COLLECTION REMOVE_COLLECTION_ITEM (COLLECTION Name, DOUBLE index)

INSERT_COLLECTION_ITEM

Функция вставляет значение «value» в качестве элемента с индексом «index».

Выполняется вставка в коллекцию элемента с индексом «index», существующий элемент коллекции с индексом «index» сдвигается на единицу в элемент с индексом «index+1», и т.д. для всех существующих элементов, индекс которых равен или больше значения индекса вставки. См. Пример .

COLLECTION INSERT_COLLECTION_ITEM (COLLECTION Name, DOUBLE index, ANY value)

SET_COLLECTION_ITEM

Функция заменяет значение элемента с индексом «index» на значение «value».

COLLECTION SET_COLLECTION_ITEM (COLLECTION Name, DOUBLE index, ANY value)

GET_COLLECTION_ITEM

Функция возвращает значение элемента с индексом «index».

ANY GET_COLLECTION_ITEM (COLLECTION Name, DOUBLE index)

Параметры:

Параметр Тип  Описание
1 INTVALUE COLLECTION Коллекция для инициализации вновь создаваемого объекта
2 NAME STRING Имя коллекции
3 INDEX DOUBLE Индекс для обращения к коллекции. Должен содержать целочисленное значение
4 VALUE ANY Значение произвольного типа для включения в коллекцию

Пример:


col=CREATE_COLLECTION()
FOR i FROM 0 TO 9
      col=INSERT_COLLECTION_ITEM(col,0,0)
      col=SET_COLLECTION_ITEM(col,0,i)
END FOR
s = GET_COLLECTION_ITEM(col,5)
len = GET_COLLECTION_COUNT(col)

Создается пустая коллекция. Затем 10 раз в коллекцию вставляется нулевой элемент со значением 0 и тут же его значение меняется на значение переменной цикла.  В результате получается коллекция из 10-ти элементов.  После выполнения программы «s»=4, «len»=10, а «col» имеет следующий вид:

0

1

2

3

4

5

6

7

8

9

9 8 7 6 5 4 3 2 1 0