Встречается на 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
интервью вопросы и ответы
