Maison > développement back-end > Golang > Comment récupérer en toute sécurité les clés de carte dans Go : résoudre les problèmes d'incompatibilité de type ?

Comment récupérer en toute sécurité les clés de carte dans Go : résoudre les problèmes d'incompatibilité de type ?

Linda Hamilton
Libérer: 2024-12-31 01:34:10
original
1020 Les gens l'ont consulté

How to Safely Retrieve Map Keys in Go: Addressing Type Mismatch Issues?

Comment obtenir des clés de carte dans Go

Lors de la récupération des clés d'une carte, il est crucial de garantir la compatibilité des types. La saisie forte de Go nécessite que les touches de mappage du même type soient mappées. Malheureusement, si votre fonction Keys() spécifie une carte de type map[interface{}]interface{}, mais que votre carte réelle est de type map[int]interface{}, vous rencontrerez une erreur d'incompatibilité de type.

Go Generics and Type Compatibility

Go ne prend pas en charge les génériques, contrairement aux langages comme Java ou C#. Cela simplifie le langage et améliore les performances. Par conséquent, vous ne pouvez pas créer de fonctions génériques qui fonctionnent sur des mappages de n'importe quel type de clé ou de valeur.

Résoudre le problème d'incompatibilité de type

Pour résoudre l'incompatibilité de type, vous disposez de plusieurs options :

  • Modifiez la fonction Keys() pour gérer explicitement map[int]interface{}, comme démontré dans ceci code :
func Keys(m map[int]interface{}) []int {
    keys := make([]int, len(m))
    i := 0
    for k := range m {
        keys[i] = k
        i++
    }
    return keys
}
Copier après la connexion
  • Vous pouvez également modifier la carte en map[interface{}]interface{}, en garantissant la compatibilité de type avec la fonction Keys() :
m2 := map[interface{}]interface{}{
    2: "string",
    3: "int",
}
Copier après la connexion
  • Vous pouvez également utiliser le package Reflect, bien que cela ait des implications en termes de performances.

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