2017-03-01 1 views
0

Warum genau ... Warum erzeugt dies einen Fehler? Liegt es daran, dass es die Zuordnung neu zuordnet, um die Erweiterung zuzulassen, oder nur, weil der Compiler-Parser diese Fälle nicht verarbeiten soll?Warum können wir keine Karte deklarieren und sie danach in der Konst füllen?

const (
     paths = &map[string]*map[string]string { 
      Smith: { 
       "theFather": "John", 
      }, 
     } 
     paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior" 
) 

Antwort

2

Constants sind Konstanten für einen Grund: Sie erwarten, dass sie genau das sein:konstant.

Der Typ definiert, welche Operationen Sie für einen Wert dieses Typs ausführen können. Der map Typ Go ist nicht konstant, Sie können seine Schlüssel/Wert-Paare nach seiner Erstellung ändern, so dass Sie keine map Konstanten haben können.

Ihre "Palette", um Konstanten zu wählen aus in den Spec definiert ist: Konstanten:

Es gibt boolean Konstanten, Rune Konstanten, ganzzahlige Konstanten, Gleitkommazahlen Konstanten, komplexe Konstanten und String-Konstanten.

Siehe ähnliche Frage: Declare a constant array

Abhilfe ist einfach: deklarieren eine Variable statt eine Konstante zu sein.

+0

Danke, dass du mir eine Bestätigung gegeben hast, das habe ich getan. Schätzen Sie es. – MrBouh

Verwandte Themen