Wie behebe ich Fehler beim Rückgabetyp der Schnittstellenmethode in Golang?

Patricia Arquette
Freigeben: 2024-11-11 08:40:03
Original
591 Leute haben es durchsucht

How to Resolve Interface Method Return Type Errors in Golang?

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
}
Nach dem Login kopieren

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"
Nach dem Login kopieren

Und die Implementierung in der A-Struktur wäre:

func (a *A) FB() package_where_IB_is_defined.IB {
    return a.b
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage