Sobes.tech
Назад к вопросам
Junior — Middle
76

Может ли структура в Go реализовать интерфейс, и как это сделать?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

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() с нужной сигнатурой.