「make」を使用した場合と使用しない場合のマップの初期化の違いを明確にする
Go マップを使用する場合、マップを初期化するには主に 2 つの方法があります: マップ リテラルを使用するか、「make」関数を呼び出します。これらのメソッド間の微妙なニュアンスを理解することは、コードのパフォーマンスを最適化するために重要です。
マップ リテラルと "make"
2 番目のアプローチは、"make(map[string" を使用する) ]int)" を実行すると、一貫して空のマップが作成されます。ただし、最初のメソッド「var m = map[string]int{}」はマップ リテラルを表します。この手法は、空ではない値でマップを初期化するために予約されています。
例:
m := map[bool]string{false: "FALSE", true: "TRUE"}
初期値のないマップ リテラル
例「m := map[T]U{}」を一般化すると、マップが生成されます初期のキーと値のペアを持たないリテラル。これは機能的には「m := make(map[T]U)」と同じです。
パフォーマンスに関する考慮事項
空のマップを初期化する場合、事実上パフォーマンスはありません。マップ リテラルを使用するか、「make」を使用するかの違い。どちらのアプローチでも空のマップが生成され、同じ量のメモリが占有されます。
初期容量の指定
「make」を使用する本当の利点は、マップを指定できることにあります。マップの初期容量。デフォルトでは、マップは、容量を超えるたびにサイズが 2 倍になる成長係数で初期化されます。ただし、「make」を使用すると、マップのサイズを事前に決定できます。
例:
m := make(map[T]U, 50)
上記のコードは、最大で 2 つのサイズを収容できる十分なスペースを持つマップを作成します。 50の要素。このアプローチは、マップのサイズが大幅に増加すると予想される場合、将来のメモリ割り当てを最小限に抑えるのに役立ちます。
以上がGo Maps: 「make」とマップ リテラル – いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。