Aller au contenu

Contraintes de type

Les contraintes de type limitent les types qui peuvent être utilisés comme arguments de type. La contrainte intégrée any autorise tous les types. comparable autorise les types qui peuvent être comparés avec == et !=. Vous pouvez également définir des contraintes personnalisées en utilisant une interface.

Utiliser comparable pour vérifier si une slice contient une certaine valeur.

package main
import "fmt"
func Contient[T comparable](slice []T, valeur T) bool {
for _, v := range slice {
if v == valeur {
return true
}
}
return false
}
func main() {
ints := []int{1, 2, 3}
fmt.Println(Contient(ints, 2)) // true
fmt.Println(Contient(ints, 5)) // false
strs := []string{"pomme", "banane"}
fmt.Println(Contient(strs, "banane")) // true
}
Fenêtre de terminal
true
false
true