Совместимость типов и подтипов
Важно помнить и понимать, что Ада использует именную, а не структурную эквивалентность типов.
Например, пусть даны следующие описания:
A, B: array(1..10) of Float; C : array(1..10) of Float; |
Тогда, следующие инструкции присваивания:
A := B; C := B; |
будут недопустимыми, поскольку все три массива имеют различные анонимные типы, назначенные компилятором (некоторые компиляторы Паскаля будут позволять осушествление первого присваивания).
Для обеспечения возможности присваивания массивов, необходимо явное указание имени для типа массива:
type List is array(1..10) of Float;
A, B: List; C: List; |
Теперь оба показанных выше присваивания будут допустимы.
При программировании на Аде, настоятельно рекомендуется избегать использования анонимных типов, подобно тому как это делается в Паскале.