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 }
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) }
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!