Heim > Backend-Entwicklung > Golang > Wie kann ich Bestelloperatoren (<, >, <=, >=) mit Go Generics sicher verwenden?

Wie kann ich Bestelloperatoren (<, >, <=, >=) mit Go Generics sicher verwenden?

DDD
Freigeben: 2024-12-11 13:27:18
Original
238 Leute haben es durchsucht

How Can I Safely Use Order Operators (<, >, <=, >=) mit Go Generics?
, =) mit Go Generics? " />

Go-Generika: Ordnungsoperatoren mit vergleichbaren Einschränkungen

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“

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.

Geordnet vs. vergleichbar

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-Versionen und Lösungen

Go 1.21

  • Führen Sie „cmp.Ordered“ aus der Standardbibliothek ein.

Gehe 1,18 bis 1.20

  • Verwenden Sie „constraints.Ordered“ aus dem experimentellen Paket „golang.org/x/exp“. Diese Einschränkung unterstützt Ordnungsoperatoren und umfasst Ganzzahlen, Gleitkommazahlen und Zeichenfolgen.

Beispiel:

import "golang.org/x/exp/constraints"

func getBiggerNumber[T constraints.Ordered](t1, t2 T) T {
    if t1 > t2 {
        return t1
    }
    return t2
}
Nach dem Login kopieren

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!

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