, =) mit Go Generics? " />
In Go 1.18 ermöglichen Generika maßgeschneiderte Einschränkungen, um die Typkompatibilität zu erzwingen. Wenn Sie jedoch versuchen, das '>' zu verwenden Wenn Sie den Operator „comparable“ mit der Einschränkung „comparable“ verwenden, können Fehler auftreten.
Die Einschränkung „comparable“ überprüft, ob ein Typ Gleichheitsoperatoren ('==' und '!=') unterstützt '). Es umfasst Typen, die als Map-Schlüssel in Frage kommen, einschließlich Arrays und Strukturen mit vergleichbaren Feldern. Insbesondere sind Schnittstellen ausgeschlossen, da sie während der Laufzeit zu Paniken führen können Vergleich.
Während die Go-Spezifikationen Ordnungsoperatoren unter dem Begriff „Vergleichsoperatoren“ erwähnen, unterscheiden sie zwischen Äquivalenz ('==' und '!=') und Ordnung Operatoren ('<', '>', '<=', '>='). Die Reihenfolge ist auf Typen beschränkt, die es sind 'bestellt.'
Go 1.21
Gehe 1,18 bis 1.20
Beispiel:
import "golang.org/x/exp/constraints" func getBiggerNumber[T constraints.Ordered](t1, t2 T) T { if t1 > t2 { return t1 } return t2 }
Durch die Auswahl der entsprechenden Einschränkung stellen Sie Typkompatibilität und korrektes Vergleichsverhalten in Ihren generischen Funktionen sicher.
Das obige ist der detaillierte Inhalt vonWie kann ich Bestelloperatoren (<, >, <=, >=) mit Go Generics sicher verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!