Руководство разработчика

Добавление в контейнер

Для одномерных последовательных контейнеров поддерживается упрощенный синтаксис добавления элемента с очередным значением индекса.

Синтаксис:

<переменная контейнерного типа> += <выражение>

Тип выражения должен соответствовать типу элементов контейнерного типа.

Примеры

ПЕРЕМ СТРОКА: конт[]
конт += "А"
конт += "Б"
ОТЛАДКА(конт) // (1: "А", 2: "Б")

Без использования оператора добавления аналогичный код будет выглядеть более громоздко:

ПЕРЕМ СТРОКА: конт[]
конт[#конт + 1] = "А"
конт[#конт + 1] = "Б"
ОТЛАДКА(конт) // (1: "А", 2: "Б")

Если для контейнерного типа указан нижний предел индекса отличный от 1, то при добавлении в пустой контейнер нумерация начинается от нижнего предела. Если очередное значение индекса превышает верхний предел, то возникает ошибка.

ПЕРЕМ СТРОКА: к[ЦЕЛОЕ(-2, 2)]
к += "А" // (-2: "A")
к += "Б" // (-2: "A", -1: "Б")
к += "В" // (-2: "A", -1: "Б", 0: "В")
к += "Г" // (-2: "A", -1: "Б", 0: "В", 1: "Г")
к += "Д" // (-2: "A", -1: "Б", 0: "В", 1: "Г", 2: "Д")
к += "Е" // ошибка: индекс 3 выходит за пределы диапазона

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

ПЕРЕМ СТРОКА: к[]
к[5] = "А"
к[7] = "Б"
к += "В" // (5: "А", 7: "Б", 8: "В")

См. также: