Junior — Middle
Wie weist man den Compiler an, dass eine bestimmte Klasse eine bestimmte Schnittstelle implementiert?
sobes.tech KI
Antwort von AI
In Go erfolgt die Implementierung von Schnittstellen implizit: Wenn ein Typ alle Methoden einer Schnittstelle implementiert, gilt er automatisch als Implementierer dieser Schnittstelle. Es ist nicht notwendig, dies explizit anzugeben.
Beispiel:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Wuff!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementiert die Schnittstelle Speaker
fmt.Println(s.Speak())
}
Wenn Sie explizit überprüfen möchten, ob ein Typ eine Schnittstelle implementiert, können Sie eine Kompilierungsprüfung verwenden:
var _ Speaker = (*Dog)(nil) // Der Compiler überprüft, ob *Dog Speaker implementiert
Auf diese Weise werden in Go Schnittstellen automatisch implementiert, wenn die erforderlichen Methoden vorhanden sind.