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
Susan Sarandonoriginal
2024-12-17 08:04:25663parcourir

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 {
        // ...
    }
  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
    }

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

    if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 {
        // ...
    }

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!

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