Динамический набор без утки? - PullRequest
7 голосов
/ 01 августа 2010

Я привык к динамической типизации, то есть проверке информации о типе объектной / не объектно-ориентированной структуры во время выполнения и выдаче некоторой ошибки типа, то есть если он крякает как утка, то это утка.Есть ли другой тип динамической типизации (пожалуйста, войдите в детали).

Ответы [ 2 ]

5 голосов
/ 09 ноября 2010

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

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

1 голос
/ 01 августа 2010

Нет, динамическая типизация - это когда значения имеют тип, а переменные - нет, поэтому большая часть проверки типов выполняется во время выполнения.Таким образом, в основном, если значение идет или крякает как утка, это утка, иначе выдается ошибка.Утиная печать на самом деле просто описывает функцию динамической типизации, которая гарантирует, что она будет безопасна для типов (то есть метод будет работать только в том случае, если переменная foo 'имеет правильный атрибут или может выполнять этот метод).

...