Назад к вопросам
VK
Middle
5
Как устроены интерфейсы в Go?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go интерфейсы — это набор методов, которые должен реализовать тип, чтобы удовлетворять интерфейсу. Особенность Go в том, что реализация интерфейса неявная: достаточно, чтобы тип имел все методы интерфейса, и он автоматически считается реализующим этот интерфейс.
Пример интерфейса и его реализации:
// Определение интерфейса
type Reader interface {
Read(p []byte) (n int, err error)
}
// Тип, реализующий интерфейс Reader
type File struct {}
func (f File) Read(p []byte) (int, error) {
// реализация чтения
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File реализует Reader неявно
}
Интерфейсы позволяют писать гибкий и расширяемый код, где функции могут принимать параметры типа интерфейса, не завися от конкретных реализаций.