Maison > développement back-end > Golang > Pourquoi mon code Go génère-t-il une erreur « Impossible d'attribuer m2 à Map[interface{}]interface{} » ?

Pourquoi mon code Go génère-t-il une erreur « Impossible d'attribuer m2 à Map[interface{}]interface{} » ?

Patricia Arquette
Libérer: 2024-12-06 21:50:13
original
294 Les gens l'ont consulté

Why Does My Go Code Throw a

Comment résoudre l'erreur « Impossible d'attribuer m2 à Map[interface{}]interface{} »

Dans votre code, vous avez rencontré une erreur liée au type compatibilité entre une carte utilisée dans la fonction Touches et la carte à laquelle vous essayez d'accéder :

cannot use m2 (type map[int]interface {}) as type map[interface {}]interface {} in argument to Keys
Copier après la connexion

Pour résoudre ce problème, vous devez garder à l'esprit le suivant :

Système de types et génériques de Golang

  • Golang est un langage typé statiquement, ce qui signifie qu'il nécessite des définitions de type explicites.
  • Golang ne prend pas en charge les génériques, donc vous ne pouvez pas définir une fonction avec des types génériques.

Compatibilité des types

Dans votre code, la fonction Keys est définie pour fonctionner avec une carte de type map[interface{}]interface{}, tandis que vous utilisez une carte de type map[int]interface{}. Ces types ne sont pas compatibles car les types de clés sont différents.

Options de résolution

Il existe plusieurs façons de résoudre ce problème :

Option 1 : Modifier le Fonction des touches

  1. Modifier la définition de la fonction pour accepter une carte de type map[int]interface{} :
func Keys(m map[int]interface{}) []interface{} {
    // Implement function
}
Copier après la connexion

Option 2 : Modifier la carte

  1. Changez le type de votre carte en map[ interface{}]interface{} :
m2 := map[interface{}]interface{}{
    2: "string",
    3: "int",
}
Copier après la connexion

Option 3 : Utiliser la réflexion (pas Recommandé)

  1. Utilisez le package Reflect pour accéder aux touches de la carte. Cependant, cette approche s'accompagne de pénalités en termes de performances.

N'oubliez pas que la compatibilité des types est cruciale dans Golang. Assurez-vous que les types de votre code correspondent aux types attendus pour éviter de telles erreurs.

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