Junior — Middle
Wie kann man feststellen, ob eine bestimmte Struktur eine gegebene Schnittstelle implementiert?
sobes.tech KI
Antwort von AI
In Go wird die Implementierung eines Interfaces implizit überprüft: Wenn ein Typ alle in der Schnittstelle deklarierten Methoden enthält, implementiert er diese Schnittstelle automatisch.
Um festzustellen, ob eine Struktur eine gegebene Schnittstelle implementiert, kann man:
- Versuchen, eine Instanz der Struktur einer Variablen vom Schnittstellentyp zuzuweisen — wenn die Kompilierung erfolgreich ist, bedeutet dies, dass die Struktur die Schnittstelle implementiert.
- Eine statische Überprüfung mit _var _ verwenden:
var _ MyInterface = (*MyStruct)(nil)
Wenn dieser Code ohne Fehler kompiliert, bedeutet dies, dass MyStruct die Schnittstelle MyInterface implementiert.
Beispiel:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// Implementierung
}
// Überprüfung der Schnittstellenimplementierung
var _ MyInterface = (*MyStruct)(nil)
Auf diese Weise ist es in Go nicht notwendig, die Implementierung einer Schnittstelle explizit anzugeben — es reicht, alle ihre Methoden zu implementieren.