Maison > développement back-end > Golang > Comment puis-je vérifier efficacement l'existence de valeurs dans les listes Go ?

Comment puis-je vérifier efficacement l'existence de valeurs dans les listes Go ?

Mary-Kate Olsen
Libérer: 2024-11-25 11:19:11
original
1034 Les gens l'ont consulté

How Can I Efficiently Check for Value Existence in Go Lists?

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")
}
Copier après la connexion

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
}
Copier après la connexion

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}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal