Heim > Backend-Entwicklung > Golang > Wie implementiert man Generics korrekt in Go-Schnittstellenmethoden?

Wie implementiert man Generics korrekt in Go-Schnittstellenmethoden?

Barbara Streisand
Freigeben: 2024-12-06 17:59:11
Original
487 Leute haben es durchsucht

How to Correctly Implement Generics in Go Interface Methods?

Implementierung von Generika in Schnittstellenmethoden

Gos jüngste Einführung von Generika hat neue Möglichkeiten für die Erstellung generischer Datenstrukturen und Algorithmen eröffnet. Ein häufiger Anwendungsfall ist die Definition generischer Iteratorschnittstellen. Das Definieren solcher Schnittstellen kann jedoch zu Fehlern führen.

Fehler: Funktionstyp kann keine Typparameter haben

Beim Versuch, eine Iteratorschnittstelle mit einer generischen Methode ForEachRemaining zu definieren, werden Sie Möglicherweise tritt der folgende Fehler auf:

function type cannot have type parameters
Nach dem Login kopieren

Dieser Fehler tritt auf, weil Methoden in Go keinen eigenen Typ haben können Parameter.

Fehler: Methoden können keine Typparameter haben

Alternativ können Sie versuchen, den Typparameter in die Methodensignatur zu verschieben, aber dies führt zu einem anderen Fehler:

methods cannot have type parameters
Nach dem Login kopieren

Lösung: Generische Schnittstelle mit Typ Parameter

Um dieses Problem zu beheben, muss der Typparameter auf der Schnittstelle selbst angegeben werden. Hier ist ein aktualisiertes Codebeispiel:

type Iterator[T any] interface {
    ForEachRemaining(action func(T) error) error
    // other methods
}
Nach dem Login kopieren

Diese Syntax gibt an, dass die Iterator-Schnittstelle in Bezug auf Typ T generisch ist und alle Methoden innerhalb der Schnittstelle T als Typparameter verwenden können.

Beispielverwendung

Hier ist ein Beispiel, das das Korrigierte zeigt Code:

import "fmt"

type Iterator[T any] interface {
    ForEachRemaining(action func(T) error) error
}

func main() {
    fmt.Println("This program compiles successfully")
}
Nach dem Login kopieren

Durch die Deklaration der Schnittstelle mit einem Typparameter können Sie Generika effektiv in Schnittstellenmethoden nutzen.

Das obige ist der detaillierte Inhalt vonWie implementiert man Generics korrekt in Go-Schnittstellenmethoden?. 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