首頁 > 後端開發 > Golang > Go 中的 `map[T]U{}` 和 `make(map[T]U)` 有什麼不同?

Go 中的 `map[T]U{}` 和 `make(map[T]U)` 有什麼不同?

Patricia Arquette
發布: 2024-12-04 17:26:11
原創
409 人瀏覽過

What's the Difference Between `map[T]U{}` and `make(map[T]U)` in Go?

了解使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板