Ich versuche, in Go die Konstante zu deklarieren, aber es wird ein Fehler ausgegeben. Könnte mir bitte jemand bei der Syntax helfen, eine Konstante in Go zu deklarieren?
Das ist mein 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",
}
Dies ist der Fehler
# command-line-arguments
./Roman_Numerals.go:9: syntax error: unexpected {
non-declaration statement outside function body
tatsächlich eine Kompilierungszeit. Woher?var romanNumeralDict map[int]string = map[int]string{...}
in einem solchen Fall.:=
außerhalb einer Funktion verwenden.Sie können Konstanten auf viele verschiedene Arten erstellen:
Sie können auch eine Aufzählungskonstante erstellen:
Sie können keine Konstanten von Maps, Arrays erstellen und es ist in effektiver Form geschrieben :
quelle
Sie können eine Karte mit einem Abschluss emulieren:
Probieren Sie es auf dem Go-Spielplatz aus
quelle
map
(3) Die anonyme Funktion gibt "eine Funktion zurück, die ein int akzeptiert und eine Zeichenfolge zurückgibt". (4) Die zurückgegebene Funktion führt die Zeichenfolge int -> aus Mapping mitmap
(5) Führen Sie die anonyme Funktion sofort aus und weisen Sie die zurückgegebene Funktion einer Variablen zu. Diese Variable kann wie eine Funktion verwendet werden, und der Effekt ist wie eine Karte.Und wie oben von Siu Ching Pong-Asuka Kenji mit der Funktion vorgeschlagen, die meiner Meinung nach sinnvoller ist und Ihnen den Komfort des Kartentyps ohne den Funktionsumbruch bietet:
Versuchen Sie dies auf play.golang.org.
quelle
Wie oben angegeben, ist es nicht möglich, eine Karte als konstant zu definieren. Sie können jedoch eine globale Variable deklarieren, bei der es sich um eine Struktur handelt, die eine Karte enthält.
Die Initialisierung würde folgendermaßen aussehen:
quelle
romanNumeralDict.m[1000] = "New value"