, =) avec Go Generics ? " />
Dans Go 1.18, les génériques permettent des contraintes personnalisées pour renforcer la compatibilité des types. Cependant, lorsque vous tentez d'utiliser le '>' avec la contrainte 'comparable', des erreurs peuvent survenir.
La contrainte 'comparable' vérifie qu'un type prend en charge les opérateurs d'égalité ('==' et '!= '). Il englobe les types éligibles comme clés de mappage, y compris les tableaux et les structures avec des champs comparables. Notamment, les interfaces sont exclues car elles peuvent provoquer des paniques à l'exécution. comparaison.
Bien que les spécifications Go mentionnent les opérateurs de commande sous le terme « opérateurs de comparaison », elles font la différence entre l'équivalence ('==' et '!=') et la commande. opérateurs ("<', '>', '<=', '>='). L'ordre est limité aux types qui sont. 'ordered.'
Go 1.21
Aller à la version 1.18 1.20
Exemple :
import "golang.org/x/exp/constraints" func getBiggerNumber[T constraints.Ordered](t1, t2 T) T { if t1 > t2 { return t1 } return t2 }
En choisissant la contrainte appropriée, vous assurez la compatibilité des types et le comportement de comparaison correct 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!