Maison > développement back-end > Golang > Comment vérifier efficacement l'appartenance aux éléments dans les tableaux Go ?

Comment vérifier efficacement l'appartenance aux éléments dans les tableaux Go ?

Susan Sarandon
Libérer: 2024-12-31 15:49:09
original
824 Les gens l'ont consulté

How to Efficiently Check for Element Membership in Go Arrays?

Vérification de l'appartenance aux tableaux dans Go

Dans Go, contrairement à Python, il n'y a pas de construction intégrée équivalente au "if x in" de Python " pour vérifier la présence d'un élément dans un tableau.

Post Go 1.18 (Recommandé Approche)

À partir de Go 1.18, vous pouvez utiliser la fonction slices.Contient pour vérifier efficacement l'appartenance à une tranche.

if slices.Contains(array, "x") {
    // Do something
}
Copier après la connexion

Pré Go 1.18 (Alternative Méthodes)

Si vous utilisez une ancienne version de Go, vous en avez deux options :

  1. Recherche itérative : Parcourez le tableau et comparez chaque élément avec la valeur cible « x ». Cette approche est inefficace pour les grands tableaux.
func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}
Copier après la connexion
  1. Utilisation de la carte : Convertissez le tableau en une carte (dictionnaire) à l'aide d'une paire clé-valeur où la clé est la valeur cible et la valeur est un booléen. Cette approche a un temps de recherche constant quelle que soit la taille du tableau.
visitedURL := map[string]bool{
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL["thisSite"] {
    fmt.Println("Already been here.")
}
Copier après la connexion

N'oubliez pas de choisir l'approche appropriée en fonction de la taille et de la nature de votre collecte de données.

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