Generische Programmierung ermöglicht die Erstellung von Code, der mit verschiedenen Datentypen arbeiten kann. In Go wird dies durch Typparameter erreicht. Ein häufiger Anwendungsfall für Generika sind Schnittstellen, die eine Reihe von Methoden definieren, die ein Typ implementieren muss.
Beim Versuch, eine generische Schnittstelle, z. B. eine Iteratorschnittstelle, zu erstellen, können Fehler im Zusammenhang mit Funktionen oder auftreten Methodentypparameter. Um eine generische Schnittstelle zu definieren, sollte der Typparameter für den Schnittstellentyp selbst angegeben werden, nicht für die einzelnen Methoden innerhalb der Schnittstelle.
Hier ist ein Beispiel für eine korrekte Implementierung einer generischen Iteratorschnittstelle:
type Iterator[T any] interface { ForEachRemaining(action func(T) error) error // other methods }
Im Schnittstellenkörper können Sie den T-Typparameter wie jeden anderen Typparameter in den Methoden verwenden.
Hier finden Sie eine ausführlichere Beschreibung Aufschlüsselung:
type MyIterator[T any] struct { // Implementation details } func (it *MyIterator[T]) ForEachRemaining(action func(T) error) error { // Implementation details }
Indem Sie den Typparameter für den Schnittstellentyp angeben und ihn innerhalb der Schnittstellenmethoden verwenden, können Sie generische Schnittstellen erstellen, die mit verschiedenen Datentypen arbeiten können und so eine flexible Grundlage bieten zum Erstellen von robustem und wiederverwendbarem Code in Go.
Das obige ist der detaillierte Inhalt vonWie definiere ich eine generische Schnittstelle in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!