首頁 >後端開發 >Golang >如何有效地從 Go Map 中切出鍵?

如何有效地從 Go Map 中切出鍵?

Patricia Arquette
Patricia Arquette原創
2024-12-27 17:50:11532瀏覽

How Can I Efficiently Slice Keys from a Go Map?

在Go 中從Map 切片鍵

問題:

問題:

i := 0
keys := make([]int, len(mymap))
for k := range mymap {
    keys[i] = k
    i++
}
有沒有更有效的方法從映射中獲取鍵的切片去嗎?

目前,常見的方法是迭代地圖,將鍵複製到切片中:

答案:
keys := make([]int, len(mymap))

i := 0
for k := range mymap {
    keys[i] = k
    i++
}

使用具有指定切片容量的make函數可以透過消除對重新分配:

這種方法稍微更簡潔,並且消除了與附加到切片相關的開銷。在包含大量鍵的映射的測試中,它被證明比使用append函數快20%。 雖然make函數設定了切片的容量,但值得注意的是append仍然會產生一些檢查每個附加是否已達到容量的額外開銷。在這種情況下,直接分配數組成員可以提高效能。

以上是如何有效地從 Go Map 中切出鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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