澄清使用和不使用「make」的地圖初始化之間的差異
使用Go 初始化地圖時,有兩種主要的初始化方法:使用地圖文字或呼叫“make”函數。理解這些方法之間的細微差別對於優化程式碼效能至關重要。
Map Literals 與“make”
第二種方法,使用“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」的真正優勢在於它能夠指定一個地圖的初始容量。預設情況下,地圖會使用增長因子進行初始化,每次超出其容量時,該增長因子的大小都會增加一倍。但是,使用“make”可以預先確定地圖的大小。
範例:
m := make(map[T]U, 50)
上面的程式碼建立了一個具有足夠空間的地圖,最多可容納50 個元素。如果您預計地圖的大小會顯著增加,此方法可以幫助最大限度地減少未來的記憶體分配。
以上是Go Maps:`make` 與 Map Literal – 什麼時候該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!