Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpIfInr 24 of 280 menu
◀ ▶

Введение в интерфейсы в Go

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

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

В Go тип не записывают в списке «кто подходит под интерфейс». Достаточно, чтобы у типа были все методы из списка с теми же параметрами и результатами. Проверку делает компилятор в месте присваивания или передачи в параметр.

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить