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
Susan Sarandonoriginal
2024-12-31 15:49:09804parcourir

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
}

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

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