Система структурных типов

Оглавление1 Система структурного типа1.1 Основы структурной типизации1.2 Описание структурной типизации1.3 Примеры использования структурной типизации1.4 Полиморфизм и структурная типизация1.5 Наследование и […]

Система структурного типа

  • Основы структурной типизации

    • Структурные типы определяют совместимость типов на основе их структуры, а не названия или места объявления. 
    • Они контрастируют с номинативными системами и утиной типизацией, где совместимость проверяется только во время выполнения. 
  • Описание структурной типизации

    • Элемент совместим с другим, если для каждого признака в типе второго элемента существует соответствующий признак в типе первого элемента. 
    • Определение не является симметричным и включает совместимость подтипов. 
    • Два типа считаются идентичными, если они совместимы друг с другом. 
  • Примеры использования структурной типизации

    • OCaml использует структурную типизацию для совместимости методов объектов. 
    • Go использует структурную типизацию для определения совместимости типа с интерфейсом. 
    • C++ демонстрирует структурную типизацию аргументов типа в шаблонных функциях. 
    • Haxe использует структурную типизацию, но не поддерживает подтипы классов. 
  • Полиморфизм и структурная типизация

    • Структурная типизация позволяет создавать специальные типы и протоколы, но может создавать закрытые абстракции. 
    • Недостаток заключается в возможности случайного создания типов с одинаковыми свойствами. 
  • Наследование и структурная типизация

    • В структурно-типизированных языках наследование не является подтипированием. 
  • Проверка совместимости типов

    • Проверка совместимости типов на основе структурной типизации является нетривиальной задачей. 
  • Пример в OCaml

    • Объекты в OCaml структурно типизированы по именам и типам методов. 
    • Классы служат только для создания объектов, а не для определения их типов. 
    • Эквивалентность типов определяется их структурой, а не названием или местом объявления. 
  • Совместимость для расширяющихся принуждений

    • Совместимость для расширяющихся принуждений также носит структурный характер. 

Полный текст статьи:

Система структурных типов

Оставьте комментарий

Прокрутить вверх