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

Инвариантные типы

Инвариантным типом называется тип, не зависящий от реализации конкретного алгоритма. Инвариантный тип используется в качестве типа параметров вызывающего и вызываемого алгоритмов. К инвариантным типам относятся:

Тип, объявленный в исходном тексте алгоритма, не является инвариантным и не может использоваться в качестве параметров алгоритма, несмотря на то, что они могут свободно использоваться как параметры функций и методов внутри алгоритма. Даже если одну и ту же библиотеку используют два алгоритма, то типы, объявленные в этой библиотеке, не могут быть использованы для передачи параметров из одного алгоритма в другой.

К использованию контейнерных типов в качестве типов параметров, принимаемых и передаваемых программами, стоит относиться с осторожностью, так как используются синонимы контейнерных типов. У контейнерного типа может быть несколько синонимов типов, и при обращении к нему неизвестно какой из синонимов подставится в качестве параметра программы. Из-за такой неоднозначности использования контейнерных типов лучше применять объектные типы.

При обмене параметрами между вызывающим и вызываемым алгоритмами компилятор может не найти использование типов этих параметров, что приведет к ошибки времени выполнения. Во избежание такой ситуации нужно применять явное использование типов. Оператор ИСПОЛЬЗОВАТЬ ТИП позволяет явно указать какие типы могут быть переданы в алгоритм.


См. также: