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

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

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

CREATE_MAP

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

MAP CREATE_MAP ()

MAP CREATE_MAP (MAP IntValue)

SET_VALUE

Функция добавляет в массив «Name» элемент со значением «Value» и ключом «Key». Если массив уже содержал элемент с ключом «Key», то значение этого элемента заменяется на «Value».  Функция возвращает модифицированный массив.

MAP SET_VALUE(MAP  Name, STRING Key, ANY Value)

GET_VALUE

Функция возвращает значение элемента с ключом «Key» из массива «Name».  Если элемент не найден, то возвращается пустая строка.

STRING GET_VALUE(MAP Name, STRING Key)

Параметры:

Параметр Тип  Описание
1 INTVALUE MAP Массив для инициализации вновь создаваемого объекта
2 NAME STRING Имя массива
3 KEY STRING Значение ключа для вставки или доступа к элементу массива
4 VALUE ANY Значение произвольного типа для добавления в массив

Пример:


map=CREATE_MAP ()
FOR i FROM 0 TO 9
     map=SET_VALUE(map, "key" & i, i)
END FOR
s = GET_VALUE(map,"key5")

Создается пустой массив.  Затем, в цикле, в массив вставляются элементы со значением равным переменной цикла и ключом вида «"key" & i».  После выполнения программы «s»=5.

Функция возвращает значение типа STRING, если оно не будет явно преобразовано к типу DOUBLE.

Пример:

RES=0+GET_VALUE