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
DDDoriginal
2024-11-29 02:11:08874parcourir

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")
}

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}

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