Копирующее присваивание
Присваивание — значение операнда справа от знака равно присваивается левому операнду, правый операнд копируется в левый операнд. Оператор присваивания сохраняет значение правого операнда в операнде, указанном слева от знака равно.
Синтаксис:
<переменная> = <выражение>
В качестве переменной могут выступать глобальные и локальные переменные, элементы контейнерных переменных или поля объектов. Тип переменной должен соответствовать типу выражения. Для стандартных типов это означает точное соответствие, а для объектных типов соответствие подразумевает принадлежность к одной ветви иерархии типов. Иными словами, допускается присваивание значений производных типов базовым и наоборот. В обоих случаях копируются значения полей базового типа. А во втором случае поля, которых нет в базовом типе, принимают значения по умолчанию. При присваивании выражения новой переменной ее тип определяется типом выражения. Иногда компилятор не может определить тип выражения и тип переменной остается неопределенным. Такой ситуации следует избегать, применяя ключевое слово ПЕРЕМ и явное указание имени типа.
Пример:
ТИП А [ ЧИСЛО: x,y; ] ТИП Б(A) [ ЧИСЛО: z = 100; ] ВЫЧИСЛИТЬ обА = А[ x = 4, y = 6 ] обБ = Б[ x = 1, y = 3, z = 1 ] обА = обБ // обА: x = 1, y = 3 обБ = обА // обБ: x = 1, y = 3, z = 100 КОНЕЦ
Оператор присваивания для контейнерных переменных удаляет все элементы контейнерной переменной, которой производится присваивание и добавляет элементы из другой контейнерной переменной или контейнерной константы. Требуется соответствие размерностей и типов индексов и элементов. При большом количестве удаляемых или добавляемых элементов выполнение оператора присваивания может занимать значительное время.
Синтаксис:
<контейнерная переменная> = <контейнерная переменная или контейнерная константа>
Пример:
ВЫЧИСЛИТЬ ПЕРЕМ СТРОКА: x2[ЦЕЛОЕ] x2 = (1: "Да", 2: "Нет") ПЕРЕМ x1 = x2 КОНЕЦ
В качестве контейнерной переменной могут выступать общие и локальные контейнерные переменные, а также индексные поля объектов. Присваивание обработчиков событий может производиться при соответствии параметров и типа возвращаемого результата.
Синтаксис:
<обработчик> = <обработчик или константа обработчика>