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
Susan Sarandonoriginal
2024-12-02 01:08:101022parcourir

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

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
}

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}

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!

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