Что такое утиная типизация?

Junior
1.5k просмотров
AFK Offer AI

«Если выглядит как утка и крякает как утка — это утка». В Go тип реализует интерфейс неявно — достаточно иметь нужные методы, не нужно явно писать implements.

Если структура имеет метод Read([]byte) (int, error) — она автоматически реализует io.Reader. Это позволяет писать гибкий код: функция принимает интерфейс, ей всё равно какой конкретный тип передан.

Проверка происходит в compile-time (в отличие от Python/JS, где duck typing — в runtime).

Следующий вопрос

Как сделать потокобезопасную map?