Menu
Coddy logo textTech

Что такое интерфейс?

Часть раздела Логика и управление потоком путешествия по GO на Coddy — урок 12 из 68.

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

Чтобы лучше понять интерфейсы, представьте себе электрическую розетку в вашем доме.

Розетка имеет определенную форму и подает электричество, но ей все равно, какое устройство вы к ней подключаете. Будь то лампа, зарядное устройство для телефона или компьютер — любое устройство с подходящей формой вилки может подключиться и получать питание. Розетка определяет «интерфейс» — требования для подключения.

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

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

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Шпаргалка

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

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

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком