Schnittstellenmethode mit Schnittstellenrückgabetyp in Golang
Die Implementierung einer Schnittstellenmethode mit einem Schnittstellenrückgabetyp kann zu Fehlern führen, wenn dies bei der Implementierung nicht der Fall ist Halten Sie sich an den Schnittstellenvertrag.
Im bereitgestellten Code definiert die IA-Schnittstelle eine FB-Methode, die eine IB-Schnittstelle zurückgibt. Allerdings gibt die Implementierung in der A-Struktur einen *B-Typ anstelle von IB zurück. Um diesen Fehler zu beheben, ändern Sie einfach den Rückgabetyp in der FB-Methodenimplementierung in IB:
func (a *A) FB() IB { return a.b }
Jetzt implementiert die A-Struktur die IA-Schnittstelle korrekt und der Code wird ohne Fehler kompiliert.
Die Definition der Schnittstellen in einem separaten Paket ist möglich und gängige Praxis. In solchen Fällen können Sie das Paket importieren, in dem die IB-Schnittstelle definiert ist, und es als Rückgabetyp für die FB-Methode in Ihrer Implementierung verwenden. Die Importanweisung würde so aussehen:
import "package_where_IB_is_defined"
Und die Implementierung in der A-Struktur wäre:
func (a *A) FB() package_where_IB_is_defined.IB { return a.b }
Dieser Ansatz ermöglicht es Ihnen, Schnittstellen über mehrere Pakete hinweg zu teilen, was die Wiederverwendbarkeit von Code fördert und Modularität.
Das obige ist der detaillierte Inhalt vonWie behebe ich Fehler beim Rückgabetyp der Schnittstellenmethode in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!