Maison > Article > développement back-end > Comment implémentez-vous la fonctionnalité de comparaison pour les types personnalisés dans Go ?
Dans Go, il n'y a pas d'interface intégrée qui nécessite un type pour implémenter une fonction de comparaison. Cependant, vous pouvez créer votre propre interface pour définir un type comparable.
Une approche courante consiste à créer une interface avec les méthodes suivantes :
type Comparable[T comparable] interface { Compare(other T) int }
Où T est le type qui implémente l'interface et int représente un résultat de comparaison (-1, 0, 1).
Pour qu'un type personnalisé soit considéré comme comparable, il doit implémenter l'interface Comparable :
type MyType struct { // ... } func (t MyType) Compare(other MyType) int { // ... }
Une fois que vous avez défini une interface Comparable, vous pouvez l'utiliser pour vérifier si un type est comparable :
func IsComparable(i interface{}) bool { _, ok := i.(Comparable[i]) return ok }
Vous pouvez également utiliser la fonction Moins pour comparer deux valeurs comparables :
func Less(a, b Comparable[T]) bool { return a.Compare(b) < 0 }
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!