Heim >Backend-Entwicklung >Golang >Warum kann ich „>' und „nicht verwenden?'

Warum kann ich „>' und „nicht verwenden?'

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 03:17:15322Durchsuche

Why Can't I Use `>` und `` 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!

Stellungnahme:
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