Maison >développement back-end >Golang >Pourquoi ne puis-je pas utiliser `>` et `
` et `" />
Contraintes comparatives dans les génériques Go : comprendre les limitations des opérateurs de commande
Dans les génériques Go, la comparaison de valeurs numériques peut être réalisée à l'aide d'une contrainte de type personnalisée ou de la contrainte comparable intégrée. Cependant, en utilisant la contrainte comparable avec des opérateurs de commande comme > peut générer une erreur.
La contrainte comparable
La contrainte comparable est utilisée pour les types qui prennent en charge les opérateurs d'égalité == et !=. Il s'applique également aux types utilisés comme clés de mappage, y compris les tableaux et les structures avec des champs comparables. Cependant, notez qu'il ne prend pas en charge les opérateurs de commande (<, <=, >, >=).
Opérateurs et contraintes de commande.Ordered
Les opérateurs de commande ne sont applicables qu’aux types qui implémentent l’interface contraintes.Ordered. Cette interface définit un ordre partiel pour les types qu'elle représente. Cependant, dans les versions Go 1.18 à 1.20, l'interface contraintes.Ordonnées n'est disponible que dans le package expérimental golang.org/x/exp.
Solution Go 1.21
Dans Go 1.21, le package cmp introduit la contrainte Ordered et deux fonctions génériques, Less et Compare, qui facilitent les comparaisons pour les objets ordonnés. types.
Solution de contournement pour Go 1.18 à 1.20
Dans les versions Go 1.18 à 1.20, vous pouvez utiliser le package golang.org/x/exp pour accéder aux contraintes. Interface commandée. Alternativement, vous pouvez implémenter votre propre type personnalisé qui satisfait aux contraintes.Interface ordonnée et l'utiliser dans vos fonctions génériques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!