Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann ich eine Karte nicht als Konstante deklarieren und sie in Go ändern?

Warum kann ich eine Karte nicht als Konstante deklarieren und sie in Go ändern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-14 14:22:02344Durchsuche

Why Can't I Declare a Map as a Constant and Modify It in Go?

Karten als Konstanten deklarieren und ändern

In Go sind Karten keine Konstanten, was bedeutet, dass ihre Schlüssel-Wert-Paare nach der Erstellung nicht geändert werden können. Der Versuch, eine Karte als Konstante zu deklarieren und sie anschließend zu füllen, wie im folgenden Snippet gezeigt, führt zu einem Fehler:

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

Grund

Konstanten stellen unveränderliche Werte und die Karte dar Der Typ in Go lässt keine Änderungen an Schlüssel-Wert-Paaren zu. Die Spezifikation beschränkt Konstantendeklarationen auf bestimmte Typen, einschließlich boolescher, Runen-, Ganzzahl-, Gleitkomma-, komplexer und Zeichenfolgenkonstanten.

Problemumgehung

Um dieses Problem zu beheben Problem, deklarieren Sie die Karte als Variable statt als Konstante, wie unten gezeigt:

var paths = map[string]*map[string]string{
    "Smith": {
        "theFather": "John",
    },
}
paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior"

Das obige ist der detaillierte Inhalt vonWarum kann ich eine Karte nicht als Konstante deklarieren und sie in Go ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn