❓ Кто сказал «кря»? — 25 августа 2026 г. в 09:33:18.197
❓ Кто сказал «кря»? В программировании часто важно, чтобы объекты относились к совместимым типам, например, наследовали один класс или реализовывали один интерфейс. А что, если нам не так важно, что это за объект, главное – чтобы он умел делать то, что от него нужно? Это и есть идея утиной типизации (Duck typing). 🪿 Утиная типизация – это подход, при котором тип объекта не проверяется явно. Если у него есть нужные методы и свойства – его можно использовать. 🪿 То есть, если нам нужно, чтобы объект умел плавать и крякать, мы просто вызываем методы swim() и quack(). Если объект крякает – для нас он утка. Ну а почему типизация именно утиная? Термин пошёл от английского выражения «утиный тест» (duck test). Его суть хорошо передаёт известная фраза: «Если что-то выглядит как утка, плавает как утка и крякает как утка, то это, скорее всего, утка». 💛 В программировании логика примерно такая же. Не обязательно выяснять, что за объект перед нами, если он умеет делать то, что от него требуется – с ним можно работать. Утиная типизация особенно характерна для языков с динамической типизацией: Python, JavaScript, Ruby, PHP. Почему её используют? ➕ код получается гибче и универсальнее ➕ меньше лишних зависимостей и проверок типов ➕ хорошо подходит для прототипирования и скриптов А в чём подвох? ➖ часть ошибок может обнаружиться только во время выполнения ➖ не всегда очевидно, что именно должен уметь объект ➖ в большом проекте такие неявные зависимости бывает сложнее поддерживать Утиная типизация даёт свободу, но требует внимательности. Главное – не то, кем объект себя называет, а то, что он умеет. Хотя иногда всё-таки стоит проверить, точно ли перед вами утка. Как говорится, доверяй, но проверяй 😈 #ЛАНИТ_учит 🍀 ЛАНИТ ищет в ВК и в МАХ

