Maison >développement back-end >Golang >Comment puis-je vérifier efficacement l'existence de valeurs dans une liste Go à l'aide de cartes ?

Comment puis-je vérifier efficacement l'existence de valeurs dans une liste Go à l'aide de cartes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-24 09:38:12810parcourir

How Can I Efficiently Check for Value Existence in a Go List Using Maps?

Vérifier l'existence d'une valeur dans une liste à l'aide de Go Maps

Dans Go, contrairement à Python, il n'y a pas d'équivalent direct au mot-clé Python in pour vérifier si une valeur est présente dans une liste. Cependant, il existe des moyens efficaces d'y parvenir en utilisant les cartes Go.

Une méthode consiste à exploiter une carte avec des clés de chaîne et des valeurs booléennes, où les clés représentent des valeurs valides et les valeurs booléennes sont toutes définies sur true. Pour tester si une valeur existe, il vous suffit de vérifier si la clé existe dans la carte :

valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true}

if valid[x] {
    fmt.Println("found")
} else {
    fmt.Println("not found")
}

Une autre option consiste à utiliser une tranche pour représenter les valeurs valides. Chaque élément de la tranche correspondrait à une valeur valide. Vous pouvez ensuite parcourir la tranche et créer la carte dynamiquement à l'aide d'une boucle for-range :

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}

Si les performances sont un problème, vous pouvez optimiser davantage la création de la carte en utilisant une valeur booléenne constante :

const t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}

Cette approche vous permet de vérifier efficacement si une valeur est présente dans une liste à l'aide de cartes Go, sans avoir besoin d'utilitaires supplémentaires ni de génération de code.

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!

Déclaration:
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