Sobes.tech
Junior — Middle

Může struktura v Go implementovat rozhraní a jak to udělat?

sobes.tech AI

Odpověď od AI

Ano, v jazyce Go může struktura implementovat rozhraní. K tomu musí struktura obsahovat všechny metody deklarované v rozhraní. V jazyce Go implementace rozhraní nevyžaduje explicitní deklaraci — pokud struktura obsahuje potřebné metody, je automaticky považována za implementující rozhraní.

Příklad:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Ahoj, jmenuji se " + p.Name
}

func main() {
    var s Speaker = Person{Name: "Ivan"}
    fmt.Println(s.Speak())
}

V tomto příkladu Person implementuje rozhraní Speaker, protože má metodu Speak() se správnou signaturou.