Maison > développement back-end > Golang > Comment puis-je vérifier efficacement l'existence d'une clé sur plusieurs cartes Go ?

Comment puis-je vérifier efficacement l'existence d'une clé sur plusieurs cartes Go ?

Susan Sarandon
Libérer: 2024-12-17 08:04:25
original
662 Les gens l'ont consulté

How Can I Efficiently Check for Key Existence Across Multiple Go Maps?

Vérification efficace de l'existence des clés dans plusieurs cartes

Dans Go, il est courant de travailler avec des cartes, qui sont des structures de données efficaces pour récupérer les clés -paires de valeurs. Cependant, le code fourni par le développeur démontre la nécessité de vérifier l’existence d’une clé dans deux cartes distinctes. La question reste de savoir si ce processus peut être rendu plus concis.

Comme expliqué dans la réponse, l'utilisation du formulaire spécial v, ok := m[k] dans Go pour vérifier l'existence d'une clé est limitée aux affectations à une seule variable. . Par conséquent, il n'est pas possible de combiner les deux vérifications en une seule condition if à l'aide de ce formulaire.

Cependant, il existe des approches alternatives pour obtenir la fonctionnalité souhaitée :

  1. Assignation de tuple :
    Si le type de valeur de la carte est un type d'interface et que vous pouvez vous assurer que la valeur nulle n'est pas utilisée, vous pouvez effectuer une affectation de tuple en utilisant deux expressions d'index :

    if v1, v2 := m1["aaa"], m2["aaa"]; v1 != nil && v2 != nil {
        // ...
    }
    Copier après la connexion
  2. Fonction d'assistance :
    Une fonction d'assistance peut être créée pour effectuer la vérification de l'existence de la clé dans les deux cartes et renvoyer les résultats :

    func idx(m1, m2 map[string]interface{}, k string) (
        v1, v2 interface{}, ok1, ok2 bool) {
    
        v1, ok1 = m1[k]
        v2, ok2 = m2[k]
        return
    }
    Copier après la connexion

    Cette fonction peut ensuite être utilisée comme suit :

    if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 {
        // ...
    }
    Copier après la connexion

Ces approches permettent une vérification concise et efficace de l'existence d'une clé dans plusieurs cartes au sein d'une seule instruction conditionnelle.

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