Back to questions
Junior — Middle
62
Можете ли объяснить концепцию duck typing и как она применяется в динамических языках программирования?
Companies where asked
ТОП КЕЙС
Answer from AI
sobes.tech AI
Duck typing — это концепция в динамических языках программирования, при которой тип объекта определяется не по его классу или иерархии наследования, а по наличию определённых методов и свойств.
Фраза "Если что-то выглядит как утка, плавает как утка и крякает как утка, значит это утка" отражает суть: если объект поддерживает нужный интерфейс (методы), его можно использовать как нужный тип.
В C# это не типично, так как язык статически типизирован, но с появлением динамического типа (dynamic) можно применять duck typing:
void MakeItQuack(dynamic obj) {
obj.Quack(); // Компиляция пройдет, ошибка будет только во время выполнения, если метода нет
}
class Duck {
public void Quack() { Console.WriteLine("Quack!"); }
}
MakeItQuack(new Duck());
Таким образом, duck typing позволяет писать более гибкий код, не зависящий от конкретных типов, а только от наличия нужных методов.