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.