Sobes.tech
Senior

Wat zijn interfaces in Go? Hoe implementeren types interfaces?

sobes.tech AI

Antwoord van AI

In Go is een interface een verzameling methoden die gedrag beschrijven. Een type implementeert een interface als het alle methoden bevat die in de interface zijn gedeclareerd, zonder expliciet de implementatie van de interface aan te geven.

Dit wordt impliciete interface-implementatie genoemd. Hierdoor kan je flexibelere en uitbreidbare code schrijven.

Voorbeeld:

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) {
    // leesimplementatie
    return 0, nil
}

func main() {
    var r Reader
    f := File{}
    r = f // File implementeert Reader
    fmt.Println(r)
}

Hier implementeert het type File de interface Reader omdat het een Read-methode heeft met de juiste handtekening.