Что такое интерфейс?
Часть раздела Логика и управление потоком путешествия по GO на Coddy — урок 12 из 68.
Интерфейс в Go — это своего рода контракт, который определяет, какими поведениями должен обладать тип, не уточняя, как именно эти поведения реализованы. Представьте его как набор сигнатур методов, описывающий, что именно может делать объект.
Чтобы лучше понять интерфейсы, представьте себе электрическую розетку в вашем доме.
Розетка имеет определенную форму и подает электричество, но ей все равно, какое устройство вы к ней подключаете. Будь то лампа, зарядное устройство для телефона или компьютер — любое устройство с подходящей формой вилки может подключиться и получать питание. Розетка определяет «интерфейс» — требования для подключения.
В Go интерфейс работает аналогичным образом. Он определяет набор сигнатур методов, которыми должен обладать тип, чтобы «подключиться» к этому интерфейсу. Любой тип, обладающий всеми необходимыми методами, автоматически удовлетворяет интерфейсу, независимо от того, что еще может делать этот тип или как он реализует эти методы.
Эта концепция очень эффективна, так как она позволяет писать код, который работает с любым типом, способным выполнять определенные действия, что делает ваши программы более гибкими и пригодными для повторного использования. Подобно тому, как различные устройства могут использовать одну и ту же розетку, различные типы Go могут соответствовать одному и тому же интерфейсу, если у них есть необходимые методы.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Шпаргалка
Интерфейс в Go определяет контракт сигнатур методов, которые должен реализовать тип. Любой тип, обладающий всеми необходимыми методами, автоматически удовлетворяет интерфейсу.
Интерфейсы позволяют писать гибкий код, который работает с любым типом, способным выполнять определенные действия, подобно тому как различные устройства могут использовать одну и ту же розетку, если у них подходящая форма вилки.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутое управление потоком выполнения
Switch с использованием `fallthrough`Выход из вложенных цикловПродолжение конкретного циклаОператор `goto`Итоги: Продвинутое управление циклами4Проект: Простой список задач
Настройка проектаДобавление задачи2Структуры и методы
Определение методов для структурПолучатели по значениюПолучатели по указателюВыбор типа получателяМетоды против функцийИтоги: поведение структур5Карты: подробный разбор
Карты структурУказатели как значения картПроверка карт на nilСравнение картИтоги: счетчик частоты слов3Интерфейсы (Основы)
Что такое интерфейс?Определение интерфейсаРеализация интерфейсаИспользование интерфейсных типовПустой интерфейсУтверждение типаПереключатель типовИтоги: Фигуры и поведение