Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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: "Ivan"}
    fmt.Println(s.Speak())
}

В този пример, Person реализира интерфейса Speaker, тъй като има метод Speak() с необходимата сигнатура.