Maison > développement back-end > Golang > Comment puis-je vérifier efficacement l'existence d'une valeur dans une liste Go ?

Comment puis-je vérifier efficacement l'existence d'une valeur dans une liste Go ?

DDD
Libérer: 2024-11-29 02:11:08
original
868 Les gens l'ont consulté

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

Vérification de la présence d'une valeur dans une liste dans Go

En Python, le mot-clé in vérifie facilement si un élément est présent dans une liste. Go, en revanche, n’a pas d’équivalent explicite. Cet article explore les techniques de mise en œuvre d'une telle vérification dans Go.

Une approche consiste à utiliser un ensemble, qui mappe les valeurs à des valeurs entières inutilisées. Cependant, cela nécessite une spécification entière artificielle pour chaque élément et n'est pas considéré comme une solution idéale.

Une approche plus élégante consiste à exploiter une carte de chaînes en booléens. La carte sert d'ensemble, et l'absence d'une paire clé-valeur dans la carte équivaut à faux, ce qui peut être interprété comme l'élément ne figurant pas dans la liste.

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

if valid[x] {
    fmt.Println("found")
} else {
    fmt.Println("not found")
}
Copier après la connexion

Remarque :

Pour plus d'efficacité avec les grandes listes, envisagez soit d'initialiser la carte à l'aide d'une boucle for range, soit de créer une constante non typée pour optimiser la valeur booléenne. mission.

var t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal