Maison > développement back-end > Golang > Quelle est la différence entre l'interface mappée {} et la structure de type {} ?

Quelle est la différence entre l'interface mappée {} et la structure de type {} ?

WBOY
Libérer: 2024-02-06 09:00:05
avant
915 Les gens l'ont consulté

Quelle est la différence entre linterface mappée {} et la structure de type {} ?

Contenu de la question

Je viens de lire que map[Type]interface{} spécifie une carte de clés de type Type avec la valeur any, qui est interface{}.

N'est-ce pas presque la même chose que définir une structure, c'est-à-dire tapez Name struct{ key1; value1, ...., keyn: valuen}?

Quelle est la différence entre ces deux types de cartographie ?

J'ai lu https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go mais je ne comprends toujours pas la différence.

Ou quelle est la différence entre map[type] interface{} que l'on définit de manière plus générale ?

Nous définissons chaque paire clé-valeur à travers la structure ?

Les deux méthodes définissent-elles simplement des objets constitués de paires clé-valeur ?


Bonne réponse


Les structures et les cartes sont des structures de données différentes. Ils présentent de nombreuses différences. En voici quelques-uns :

Les structures ont un nombre fixe de champs, qui sont déclarés une seule fois et ne peuvent pas être modifiés.

3a15cefd8a1cc7ac8a7f27a0d3f9b13

La carte peut s'agrandir ou se réduire au moment de l'exécution.

vector := map[string]float64{
    "x": 2.0,
    "y": 2.0,
}

vector["z"] = 2.0
Copier après la connexion

Vous pouvez parcourir les entrées de la carte.

for key, val := range vector {
    fmt.Println(key, val)
}
Copier après la connexion

Les structures ne prennent pas en charge l'itération (sauf si vous utilisez la réflexion).

Les champs de structure peuvent avoir des étiquettes (attributs supplémentaires) :

type User struct {
    Name          string    `json:"name"`
    Password      string    `json:"password"`
}
Copier après la connexion

La carte n'a pas cette fonctionnalité.

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!

Étiquettes associées:
source:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal