正確にはどのような違いがありますか
var m = map[string]int{}
と
var m = make(map[string]int)
最初のものは、フィールドの初期化を高速化するための単なるショートカットですか? パフォーマンスに関する考慮事項はありますか?
正確にはどのような違いがありますか
var m = map[string]int{}
と
var m = make(map[string]int)
最初のものは、フィールドの初期化を高速化するための単なるショートカットですか? パフォーマンスに関する考慮事項はありますか?
2 番目の形式は、常に空のマップを作成します。
最初の形式は、マップ リテラルの特殊なケースです。マップ リテラルを使用すると、空でないマップを作成できます。
m := map[bool]string{false: "FALSE", true: "TRUE"}
今あなたの(一般化された)例:
m := map[T]U{}
初期値 (キーと値のペア) のないマップ リテラルです。以下と完全に同等です。
m := make(map[T]U)
さらに、make
最初に割り当てられた要素の数よりも大きいマップの初期容量を指定する唯一の方法です。例:
m := make(map[T]U, 50)
50 個のアイテムを保持するのに十分なスペースが割り当てられたマップを作成します。これは、マップが拡大することがわかっている場合、将来の割り当てを減らすのに役立ちます。