Использование массивов в ABL
Язык ABL поддерживает одномерные массивы, в которых элементы массива имеют одинаковый тип данных. Этим массивы могут быть фиксированного размера или неопределённого (устанавливается во время выполнения). Любую переменную или свойство можно определить в качестве массива. Первый элемент массива имеет индексное значение 1. Обычно массивы используются для хранения небольших наборов данных. Поскольку значения элементов массива не индексируются, то массивы не удобно использовать для поиска данных в них.
Простым примером использования массива является хранения телефонных номеров сотрудника. Допустим, переменную PhoneNumber мы определили в качестве массива из трёх элементов. Тогда первый элемент массива PhoneNumber[1] мы используем для хранения рабочего номера, второй элемент PhoneNumber[2] – для хранения мобильного номера и третий элемент PhoneNumber[3] – для хранения домашнего номера.
Для определения переменной или свойства в качестве массива необходимо добавить дополнительное ключевое слово extent. Если предполагается, что массив будет фиксированным, то после extent укажите его размер. Если размер массива не будет указан, то вы должны указать размер позже в коде приложения.
Синтаксис для определения массива:
define [<visibility>] {property | variable} <name> as <type-name> extent [size] [no-undo].
Следующий пример демонстрирует определение свойства PhoneNumber в качестве массива из трёх элементов:
define public property PhoneNumbers as character extent 3 no-undo get(input idx as integer): return PhoneNumbers[idx]. end get. private set(input arg as character, input idx as integer): PhoneNumbers[idx] = arg. end set.