Sobes.tech
Junior — Middle

Wat is het verschil tussen interfaces in Golang en die in andere programmeertalen?

sobes.tech AI

Antwoord van AI

In Go worden interfaces geïmplementeerd volgens het principe van impliciete implementatie. Dit betekent dat een type automatisch een interface implementeert als het alle methoden heeft die de interface vereist, zonder dit expliciet in de code aan te geven (in tegenstelling tot Java of C#, waar je de implementatie van een interface expliciet moet aangeven).

Dit maakt het mogelijk om flexibelere en minder gekoppelde code te schrijven, omdat types en interfaces niet direct van elkaar afhankelijk zijn.

Voorbeeld:

package main
import "fmt"

type Reader interface {
    Read(p []byte) (n int, err error)
}

type MyReader struct{}

func (r MyReader) Read(p []byte) (n int, err error) {
    // leesimplementatie
    return 0, nil
}

func main() {
    var r Reader = MyReader{} // impliciete interface-implementatie
    fmt.Println(r)
}

Ook in Go bestaat geen class-erfenis, interfaces worden gebruikt voor polymorfisme en compositie, wat ze onderscheidt van veel andere talen.