首頁 >後端開發 >Golang >Go Maps:`make` 與 Map Literal – 什麼時候該使用哪一個?

Go Maps:`make` 與 Map Literal – 什麼時候該使用哪一個?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-13 12:48:14285瀏覽

Go Maps:  `make` vs. Map Literal – When Should I Use Which?

澄清使用和不使用「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn