Maison > développement back-end > Golang > Comment puis-je vérifier efficacement l'appartenance à une valeur dans les listes Go ?

Comment puis-je vérifier efficacement l'appartenance à une valeur dans les listes Go ?

Susan Sarandon
Libérer: 2024-12-02 01:08:10
original
960 Les gens l'ont consulté

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

Vérification de l'appartenance à une valeur dans des listes dans Go

En Python, le mot-clé in vérifie facilement si une valeur existe dans une liste. Une fonctionnalité similaire dans Go nécessite une approche légèrement différente.

Une option consiste à utiliser une carte avec des clés de chaîne et des valeurs entières. Cependant, cette approche nécessite de spécifier une valeur entière inutilisée, ce qui peut s'avérer gênant.

Utiliser une carte avec des valeurs booléennes

Une solution plus élégante consiste à créer une carte avec une chaîne clés et valeurs booléennes. L'absence de clé dans la carte renvoie la valeur booléenne par défaut de false.

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

Optimiser avec un Slice

Si vous avez un grand nombre de valeurs valides , pensez à utiliser une tranche pour initialiser les valeurs de la carte à true :

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}
Copier après la connexion

Initialisation plus courte en utilisant Constantes

Alternativement, vous pouvez créer une constante non typée ou booléenne et optimiser davantage l'initialisation :

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

En adoptant l'une de ces techniques, vous pouvez vérifier efficacement si une valeur est contenu dans une liste dans Go, offrant des fonctionnalités similaires au mot-clé in de Python.

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