Senior
Co jsou rozhraní v Go? Jak typy implementují rozhraní?
sobes.tech AI
Odpověď od AI
V jazyce Go je rozhraní soubor metod, které popisují chování. Typ implementuje rozhraní, pokud obsahuje všechny metody deklarované v rozhraní, aniž by bylo nutné explicitně uvádět implementaci rozhraní.
Toto se nazývá neexplicitní implementace rozhraní. Díky tomu lze psát flexibilnější a rozšiřitelnější kód.
Příklad:
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// implementace čtení
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File implementuje Reader
fmt.Println(r)
}
Zde typ File implementuje rozhraní Reader, protože má metodu Read s požadovanou signaturou.