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.