Назад к вопросам
Avito
Junior — Middle
76
Может ли структура в Go реализовать интерфейс, и как это сделать?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Да, в Go структура может реализовать интерфейс. Для этого структура должна иметь все методы, объявленные в интерфейсе. В Go реализация интерфейса не требует явного указания — если структура содержит необходимые методы, она автоматически считается реализующей интерфейс.
Пример:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Person struct {
Name string
}
func (p Person) Speak() string {
return "Привет, меня зовут " + p.Name
}
func main() {
var s Speaker = Person{Name: "Иван"}
fmt.Println(s.Speak())
}
В этом примере Person реализует интерфейс Speaker, так как у него есть метод Speak() с нужной сигнатурой.