Назад к вопросам
Middle+
6
Что такое интерфейсы в Go?
Компании, где спрашивали
WaterWal
Ответ от нейросети
sobes.tech AI
В Go интерфейсы — это набор методов, которые должен реализовать тип, чтобы считаться соответствующим этому интерфейсу. Они позволяют описывать поведение без указания конкретной реализации, что способствует гибкости и полиморфизму.
Особенности интерфейсов в Go:
- Неявная реализация: тип считается реализующим интерфейс, если у него есть все методы интерфейса, без необходимости явно указывать это.
- Интерфейсы могут быть использованы для абстракции и упрощения тестирования.
Пример интерфейса и реализации:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Гав!"
}
type Cat struct {}
func (c Cat) Speak() string {
return "Мяу!"
}
func saySomething(s Speaker) {
fmt.Println(s.Speak())
}
func main() {
dog := Dog{}
cat := Cat{}
saySomething(dog) // Выведет: Гав!
saySomething(cat) // Выведет: Мяу!
}
Таким образом, интерфейсы позволяют писать более универсальный и расширяемый код.