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.