Go でマップを使用した構造体フィールドの初期化
マップ フィールドを含む構造体を初期化するときは、マップがnil ポインターエラーを避けるために初期化されます。 1 つの方法は、次のようなマップを明示的に初期化するコンストラクター関数を作成することです:
type Graph struct { connections map[Vertex][]Vertex } func NewGraph() *Graph { var g Graph g.connections = make(map[Vertex][]Vertex) return &g }
もう 1 つのオプションは、マップが空の場合に初期化する「接続の追加」メソッドを使用することです:
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) }
その明瞭さと使いやすさからコンストラクターの使用を好む人もいますが、その柔軟性と潜在的なパフォーマンス上の利点から「接続の追加」メソッドを好む人もいます。最終的に、最適なアプローチはアプリケーションの特定の要件によって異なります。
以上がGo 構造体でマップフィールドを適切に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。