Estoy tratando de declarar constante en Go, pero arroja un error. ¿Podría alguien ayudarme con la sintaxis de declarar una constante en Go?
Este es mi código:
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",
}
Este es el error
# command-line-arguments
./Roman_Numerals.go:9: syntax error: unexpected {
non-declaration statement outside function body
tiempo de compilación en realidad. ¿Cómo?var romanNumeralDict map[int]string = map[int]string{...}
en tal caso.:=
fuera de una función.Puede crear constantes de muchas maneras diferentes:
También puede crear una enumeración constante:
No puede crear constantes de mapas, matrices y está escrito en go efectivo :
fuente
Puede emular un mapa con un cierre:
Pruébalo en el patio de juegos Go
fuente
map
(3) La función anónima devuelve "una función que acepta un int y devuelve una cadena" (4) La función devuelta hace el int -> cadena mapeo utilizandomap
(5) Ejecute la función anónima inmediatamente y asigne la función devuelta a una variable. Esta variable podría usarse como una función, y el efecto es como un mapa.Y como lo sugirió anteriormente Siu Ching Pong -Asuka Kenji con la función que en mi opinión tiene más sentido y te deja con la comodidad del tipo de mapa sin la envoltura de la función:
Prueba esto en play.golang.org.
fuente
Como se indicó anteriormente, definir un mapa como constante no es posible. Pero puede declarar una variable global que es una estructura que contiene un mapa.
La inicialización se vería así:
fuente
romanNumeralDict.m[1000] = "New value"