Heim >Backend-Entwicklung >Golang >Warum kann ich „>' und „nicht verwenden?'
` und `" />
Vergleichsbeschränkungen in Go Generics: Verständnis der Einschränkungen von Bestelloperatoren
In Go Generics Der Vergleich numerischer Werte kann entweder mithilfe einer benutzerdefinierten Typbeschränkung oder der integrierten Vergleichsbeschränkung erreicht werden. Bei Verwendung der vergleichbaren Einschränkung mit Auftragsoperatoren wie > kann einen Fehler auslösen.
Die vergleichbare Einschränkung
Die vergleichbare Einschränkung wird für Typen verwendet, die Gleichheitsoperatoren == und != unterstützen. Es ist auch auf Typen anwendbar, die als Zuordnungsschlüssel verwendet werden, einschließlich Arrays und Strukturen mit vergleichbaren Feldern. Beachten Sie jedoch, dass Auftragsoperatoren (<, <=, >, >=) nicht unterstützt werden.
Bestelloperatoren und Einschränkungen.Ordered
Bestelloperatoren sind nur auf Typen anwendbar, die die Constraints.Ordered-Schnittstelle implementieren. Diese Schnittstelle definiert eine teilweise Reihenfolge für die Typen, die sie darstellt. In den Go-Versionen 1.18 bis 1.20 ist die Schnittstelle „constraints.Ordered“ jedoch nur im experimentellen Paket golang.org/x/exp verfügbar.
Go 1.21-Lösung
In Go 1.21 führt das cmp-Paket die Ordered-Einschränkung und zwei generische Funktionen, Less und Compare, ein, die Vergleiche für geordnete Funktionen erleichtern Typen.
Problemumgehung für Go 1.18 bis 1.20
In den Go-Versionen 1.18 bis 1.20 können Sie das Paket golang.org/x/exp verwenden, um auf die Einschränkungen zuzugreifen. Geordnete Schnittstelle. Alternativ können Sie Ihren eigenen benutzerdefinierten Typ implementieren, der die Constraints.Ordered-Schnittstelle erfüllt, und diesen in Ihren generischen Funktionen verwenden.
Das obige ist der detaillierte Inhalt vonWarum kann ich „>' und „nicht verwenden?'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!