Sobes.tech
Senior

Was sind Schnittstellen in Go? Wie implementieren Typen Schnittstellen?

sobes.tech KI

Antwort von AI

In Go ist eine Schnittstelle eine Sammlung von Methoden, die ein Verhalten beschreiben. Ein Typ implementiert eine Schnittstelle, wenn er alle in der Schnittstelle deklarierten Methoden enthält, ohne die Implementierung explizit anzugeben.

Dies wird als implizite Schnittstellenimplementierung bezeichnet. Dadurch kann man flexibleren und erweiterbaren Code schreiben.

Beispiel:

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

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

Hier implementiert der Typ File die Schnittstelle Reader, weil er eine Read-Methode mit der erforderlichen Signatur hat.