Heim > Backend-Entwicklung > Golang > Wie initialisiert man Karten in Go-Struct-Feldern am besten?

Wie initialisiert man Karten in Go-Struct-Feldern am besten?

Susan Sarandon
Freigeben: 2024-12-14 07:20:39
Original
623 Leute haben es durchsucht

How to Best Initialize Maps in Go Struct Fields?

Best Practice zum Initialisieren von Karten in Go-Strukturen

Beim Erstellen einer Struktur, die ein Kartenfeld enthält, setzt der Compiler es standardmäßig auf Null, was bedeutet kann beim Zugriff auf die Karte ohne ordnungsgemäße Initialisierung zu Laufzeitfehlern führen. Mehrere Methoden können diesem Initialisierungsbedarf effektiv gerecht werden.

Konstruktorfunktion

Ein empfohlener Ansatz besteht darin, eine Konstruktorfunktion speziell für die Struktur zu implementieren. Diese Funktion ist für die Initialisierung des Kartenfelds zum Zeitpunkt der Strukturerstellung verantwortlich und stellt sicher, dass die Karte niemals Null ist.

Beispiel:

func NewGraph() *Graph {
    var g Graph
    g.connections = make(map[Vertex][]Vertex)
    return &g
}
Nach dem Login kopieren

Methode mit Initialisierungsprüfung

Eine andere Möglichkeit besteht darin, eine Methode innerhalb der Struktur zu erstellen, die Verbindungen zur Karte hinzufügt. Diese Methode sollte zunächst prüfen, ob die Karte Null ist, und sie gegebenenfalls initialisieren, bevor weitere Aktionen ausgeführt werden.

Beispiel:

func (g *Graph) AddConnection(v1, v2 Vertex) {
    if g.connections == nil {
        g.connections = make(map[Vertex][]Vertex)
    }
    g.connections[v1] = append(g.connections[v1], v2)
    g.connections[v2] = append(g.connections[v2], v1)
}
Nach dem Login kopieren

Explizite Karteninitialisierung in Strukturdefinition

In bestimmten Szenarien kann es akzeptabel sein, die Karte explizit innerhalb der Strukturdefinition selbst zu initialisieren. Dieser Ansatz ist nützlich, wenn die Karte unveränderlich ist oder ihre Werte zur Kompilierungszeit bekannt sind.

Beispiel:

type Graph struct {
    connections map[Vertex][]Vertex
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie initialisiert man Karten in Go-Struct-Feldern am besten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage