在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中文網其他相關文章!