Sobes.tech
Junior — Middle

Was ist der Unterschied bei Schnittstellen in Golang im Vergleich zu anderen Programmiersprachen?

sobes.tech KI

Antwort von AI

In Go werden Schnittstellen nach dem Prinzip der impliziten Implementierung umgesetzt. Das bedeutet, dass ein Typ eine Schnittstelle automatisch implementiert, wenn er alle Methoden hat, die die Schnittstelle erfordert, ohne dies explizit im Code angeben zu müssen (im Gegensatz zu Java oder C#, wo die Implementierung einer Schnittstelle explizit deklariert werden muss).

Dies ermöglicht es, flexibleren und weniger gekoppelte Code zu schreiben, da Typen und Schnittstellen nicht direkt voneinander abhängig sind.

Beispiel:

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

func main() {
    var r Reader = MyReader{} // implizite Schnittstellenimplementierung
    fmt.Println(r)
}

Außerdem gibt es in Go keine Klassenvererbung, Schnittstellen werden für Polymorphismus und Komposition verwendet, was sie von vielen anderen Sprachen unterscheidet.