Heim > Backend-Entwicklung > Golang > Wie initialisiere ich Kartenfelder in Go-Strukturen richtig?

Wie initialisiere ich Kartenfelder in Go-Strukturen richtig?

DDD
Freigeben: 2024-12-02 16:47:11
Original
503 Leute haben es durchsucht

How to Properly Initialize Map Fields in Go Structs?

Initialisierung von Strukturfeldern mit Karten in Go

Beim Initialisieren einer Struktur, die ein Kartenfeld enthält, ist es wichtig sicherzustellen, dass die Karte vorhanden ist initialisiert, um Nullzeigerfehler zu vermeiden. Ein Ansatz besteht darin, eine Konstruktorfunktion zu erstellen, die die Karte explizit initialisiert, wie zum Beispiel:

type Graph struct {
  connections map[Vertex][]Vertex
} 

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

Eine andere Option besteht darin, eine „Verbindung hinzufügen“-Methode zu verwenden, die die Karte initialisiert, wenn sie leer ist:

func (g *Graph) add_connection(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

Einige bevorzugen die Verwendung von Konstruktoren aufgrund ihrer Klarheit und Benutzerfreundlichkeit, während andere die Methode „Verbindung hinzufügen“ aufgrund ihrer Flexibilität und potenziellen Leistungsvorteile bevorzugen. Letztendlich hängt der beste Ansatz von den spezifischen Anforderungen der Anwendung ab.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich Kartenfelder in Go-Strukturen richtig?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage