Maison > développement back-end > Golang > Comment Go gère-t-il les contrôles d'adhésion comme 'if x in' de Python ?

Comment Go gère-t-il les contrôles d'adhésion comme 'if x in' de Python ?

Barbara Streisand
Libérer: 2024-12-18 17:19:11
original
362 Les gens l'ont consulté

How Does Go Handle Membership Checks Like Python's

Réponse de Go à la construction "if x in" de Python

En programmation, il est souvent nécessaire de vérifier l'existence d'un élément dans un collection. En Python, cela peut être accompli de manière concise en utilisant la construction « if x in ». Cependant, Go fournit-il un mécanisme similaire ?

Implémentation de la fonctionnalité

Go, malheureusement, ne dispose pas d'une construction intégrée "if x in". Cependant, cette fonctionnalité peut être implémentée de deux manières :

1. Utilisation de Slices.Contains (Go 1.18 et supérieur)

Depuis Go 1.18, le langage fournit la fonction slices.Contains, qui peut être utilisée pour vérifier si un élément donné existe dans une tranche :

package main

func main() {
    arr := []int{1, 2, 3}
    fmt.Println(slices.Contains(arr, 2)) // True
}
Copier après la connexion

2. Utilisation d'une fonction personnalisée (versions Go antérieures à 1.18)

Avant Go 1.18, vous deviez définir votre propre fonction pour effectuer cette vérification. Voici un exemple :

package main

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}

func main() {
    arr := []string{"a", "b", "c"}
    fmt.Println(stringInSlice("b", arr)) // True
}
Copier après la connexion

Optimisation avec Maps

Si vous effectuez fréquemment des vérifications d'adhésion, il est recommandé d'utiliser une carte au lieu d'un tableau ou d'une tranche. Les cartes fournissent des recherches en temps constant, améliorant considérablement les performances.

package main

func main() {
    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

Bien que Go n'ait pas d'équivalent exact à la construction "if x in" de Python, les approches susmentionnées fournissent des solutions flexibles pour vérifier l'existence d'éléments dans divers scénarios. .

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