Maison > développement back-end > Golang > le corps du texte

Pourquoi les cartes constantes dans Go ne peuvent-elles pas être remplies après la déclaration ?

DDD
Libérer: 2024-11-19 03:32:02
original
571 Les gens l'ont consulté

Why Can't Constant Maps in Go Be Filled After Declaration?

Cartes constantes dans Go : pourquoi ne peuvent-elles pas être remplies après la déclaration ?

Dans Go, l'erreur "Impossible d'attribuer à const" peut survenir lors d'une tentative de modification une carte après l'avoir déclarée constante. Ce comportement découle de la nature des constantes et des règles régissant leur manipulation dans le langage Go.

Les constantes sont des valeurs dont la valeur ne peut être modifiée après initialisation. Leur objectif principal est de garantir qu'une valeur particulière reste la même tout au long de l'exécution d'un programme. Dans Go, les constantes peuvent être de différents types, notamment des entiers, des chaînes, des booléens et des types d'énumération. Cependant, les cartes, contrairement à ces autres types, ne peuvent pas être déclarées comme constantes car elles sont mutables, ce qui signifie que leurs paires clé-valeur peuvent être modifiées après la création.

L'erreur se produit car l'affectation aux chemins["Smith"] ["theSon"] viole l'immuabilité de la constante map. Tenter de modifier la carte de cette manière entraînerait une modification de la valeur constante d'origine, ce qui est interdit par le compilateur Go. Au lieu de cela, le compilateur exige que toutes les constantes, y compris les cartes, aient une valeur fixe au point de déclaration.

Pour résoudre ce problème, il faut déclarer la carte comme une variable au lieu d'une constante, comme illustré ci-dessous :

var paths = map[string]*map[string]string{
    Smith: {
        "theFather": "John",
    },
}
paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior"
Copier après la connexion

En déclarant la carte comme variable, elle devient mutable et peut être modifiée à volonté. Il est important de noter que, même si cette solution de contournement permet la modification de la carte, elle nécessite toujours que toutes les paires clé-valeur soient initialisées au moment de la déclaration.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal