Sobes.tech
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.