J'essaie de déclarer une constante dans Go, mais cela génère une erreur. Quelqu'un pourrait-il m'aider s'il vous plaît avec la syntaxe de la déclaration d'une constante dans Go?
Voici mon code:
const romanNumeralDict map[int]string = {
1000: "M",
900 : "CM",
500 : "D",
400 : "CD",
100 : "C",
90 : "XC",
50 : "L",
40 : "XL",
10 : "X",
9 : "IX",
5 : "V",
4 : "IV",
1 : "I",
}
C'est l'erreur
# command-line-arguments
./Roman_Numerals.go:9: syntax error: unexpected {
non-declaration statement outside function body
au moment de la compilation en fait. Comment venir?var romanNumeralDict map[int]string = map[int]string{...}
dans ce cas.:=
dehors d'une fonction.Vous pouvez créer des constantes de différentes manières:
Vous pouvez également créer une constante d'énumération:
Vous ne pouvez pas créer de constantes de maps, de tableaux et c'est écrit en bon go :
la source
Vous pouvez émuler une carte avec une fermeture:
Essayez-le sur le terrain de jeu Go
la source
map
(3) La fonction anonyme renvoie "une fonction qui accepte un int et retourne une chaîne" (4) La fonction retournée fait le int -> string mapping à l'aide dumap
(5) Exécuter immédiatement la fonction anonyme et affecter la fonction retournée à une variable. Cette variable peut être utilisée comme une fonction, et l'effet est comme une carte.Et comme suggéré ci-dessus par Siu Ching Pong -Asuka Kenji avec la fonction qui, à mon avis, a plus de sens et vous laisse avec la commodité du type de carte sans le wrapper de fonction:
Essayez ceci sur play.golang.org.
la source
Comme indiqué ci-dessus, il n'est pas possible de définir une carte comme constante. Mais vous pouvez déclarer une variable globale qui est une structure contenant une carte.
L'initialisation ressemblerait à ceci:
la source
romanNumeralDict.m[1000] = "New value"