Sobes.tech
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.