Heim > Backend-Entwicklung > Golang > Warum kann „comparable' bei Generics nicht mit Order-Operatoren („usw.') verwendet werden?

Warum kann „comparable' bei Generics nicht mit Order-Operatoren („usw.') verwendet werden?

DDD
Freigeben: 2024-12-10 10:44:15
Original
248 Leute haben es durchsucht

Why Can't Go Generics Use `comparable` with Order Operators (``, etc.)?

Warum können Sie keine vergleichbare Einschränkung mit Auftragsoperatoren in Go-Generika verwenden?

Beim Erkunden von Go-Generika kann es zu einem Fehler kommen, wenn mit > Operator für integrierte vergleichbare Typen. Dies liegt daran, dass die vergleichbare Einschränkung nur Gleichheitsoperatoren (== und !=) unterstützt, während Ordnungsoperatoren (<, >, <= und >=) die geordnete Einschränkung erfordern.

Was ist der Unterschied zwischen vergleichbaren und geordneten Typen?

Die Vergleichseinschränkung gilt für Typen, die Gleichheitsoperatoren unterstützen, einschließlich Arrays und Strukturen mit vergleichbaren Feldern. Die Ordnungsoperatoren gelten jedoch für geordnete Typen, wie z. B. numerische Typen und Zeichenfolgen.

Lösung für Go 1.18 bis 1.20

In Go-Versionen 1.18 bis 1.20 können Sie die Einschränkung „constraints.Ordered“ verwenden, um Auftragsoperatoren zu unterstützen. Diese Einschränkung umfasst Typen wie Integer, Float und ~string.

Lösung für Go 1.21 und höher

In Go 1.21 führt die Standardbibliothek das cmp-Paket mit ein Geordnete Einschränkung und zwei generische Funktionen, Less und Compare, die die Arbeit mit geordneten Typen erleichtern.

Das obige ist der detaillierte Inhalt vonWarum kann „comparable' bei Generics nicht mit Order-Operatoren („usw.') verwendet werden?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage