Встречается на 41% собеседований по Go

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

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

Пример:

go
type Speaker interface {
    Speak() string
}

type Dog struct{}
func (d Dog) Speak() string { return "Woof!" }

type Cat struct{}
func (c Cat) Speak() string { return "Meow!" }

func MakeSound(s Speaker) {
fmt.Println(s.Speak())
}

func main() {
MakeSound(Dog{})
MakeSound(Cat{})
}

text

Ключевые особенности:
- Интерфейсы в Go реализуются неявно
- Могут содержать любые методы (0+)
- Пустой интерфейс `interface{}` принимает любые значения
- Используются для полиморфизма и абстракции
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы