Maison > développement back-end > Golang > Comment puis-je vérifier efficacement l'adhésion à la liste dans Go ?

Comment puis-je vérifier efficacement l'adhésion à la liste dans Go ?

Patricia Arquette
Libérer: 2024-11-27 16:30:14
original
141 Les gens l'ont consulté

How Can I Efficiently Check List Membership in Go?

Adhésion à la liste de contrôle dans Go : une alternative au mot-clé Python "in"

En Python, le mot-clé "in" fournit un outil pratique moyen de vérifier si une valeur existe dans une liste. Go, cependant, n'offre pas d'équivalent direct.

Rapprocher le mot-clé "in" avec une carte

Une approche dans Go consiste à exploiter une carte[string] bool comme représentation d’un ensemble. En stockant des valeurs valides sous forme de clés et en attribuant de vraies valeurs, vous pouvez tester l'appartenance en vérifiant si une clé est présente 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")
}
Copier après la connexion

Utiliser des valeurs nulles

Profitez du fait que lorsqu'une clé n'est pas trouvée dans une carte, la valeur zéro pour bool (false) est renvoyée. Cela vous permet d'omettre l'affectation explicite de vraies valeurs, simplifiant ainsi l'initialisation :

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

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

Optimisations

Pour les scénarios avec un grand nombre de valeurs valides, pensez à utiliser une boucle for range pour initialiser la carte. Cela fournit une solution compacte :

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

De plus, vous pouvez optimiser le code en définissant une variable const pour éviter les valeurs booléennes répétitives :

const 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
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