Maison >développement back-end >Golang >Comment puis-je vérifier efficacement l'existence de valeurs dans les listes Go ?
Vérification efficace des valeurs dans les listes Go avec Maps
Lorsque vous traitez des listes dans Go, vous pouvez rencontrer le besoin de déterminer si une valeur existe au sein d'une liste. Alors que Python propose le mot-clé "in" pratique à cet effet, Go n'a pas d'équivalent direct.
Une approche consiste à tirer parti de l'idiome défini, dans lequel vous mappez chaque valeur à une valeur entière arbitraire. Cependant, cette méthode nécessite de spécifier une valeur entière inutilisée, ce qui peut s'avérer fastidieux.
Utiliser des cartes pour une manipulation efficace des ensembles
Une solution alternative consiste à utiliser une map[string ]bool sous forme d’ensemble. En mappant des valeurs valides sur la valeur booléenne « true », vous pouvez tester l'appartenance comme suit :
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") }
Lors de l'interrogation d'une clé non présente dans la carte, la valeur « false » par défaut est renvoyée, indiquant l'absence .
Optimisation du code avec les idiomes d'initialisation
Pour rationaliser le processus d'initialisation, envisagez d'utiliser un tranche de valeurs valides et une boucle for-range :
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
Vous pouvez également définir une constante booléenne à une lettre pour une initialisation concise :
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
En employant ces stratégies, vous pouvez efficacement vérifiez l'appartenance de la valeur aux listes Go sans avoir besoin du mot-clé Python "in", tout en utilisant les capacités du type de carte Go pour une fonctionnalité de type ensemble.
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!