了解使用make 和不使用make 來建立Map 的差異
在Go 中,有兩種初始化Map 的方法:
var m = map[string]int{}
var m = make(map[string]int)
雖然這些可能看起來相似,但它們具有不同的含義和實用性
使用make 建立空映射
第二種形式make(map[string]int) 始終建立一個空映射。這是初始化沒有初始鍵值對的映射的簡單方法。
非空映射文字
第一種形式,map[string]int{ },是地圖文字的特殊情況。映射文字允許使用預先定義的鍵值對建立非空映射。例如:
m := map[bool]string{false: "FALSE", true: "TRUE"}
空白地圖文字
現在,您問題中的範例:
m := map[T]U{}
這是一個沒有地圖文字的地圖文字初始值(鍵/值對)。這相當於:
m := make(map[T]U)
因此,第一種形式本質上是後者在創建空地圖時的捷徑。
效能注意事項
就效能而言,這兩種方法對於建立空白地圖來說是相當的。然而,make 具有額外的靈活性來指定初始容量。透過指定更大的容量,make 會在記憶體中預先分配足夠的空間來容納一定數量的元素。如果您知道地圖可能會成長,這可能有利於減少未來的分配。
以上是Go 中的 `map[T]U{}` 和 `make(map[T]U)` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!