Go 地圖中的分配順序
考慮以下Go 代碼:
package main import "fmt" type Vertex struct { Lat, Long float64 } var m map[string]Vertex func main() { m = make(map[string]Vertex) m["Bell Labs"] = Vertex{ 40.68433, 74.39967, } m["test"] = Vertex{ 12.0, 100, } fmt.Println(m["Bell Labs"]) fmt.Println(m) }
輸出:
{40.68433 74.39967} map[Bell Labs:{40.68433 74.39967} test:{12 100}] 透過移動右側“}”來修改測試頂點聲明4個空格,如下:m["test"] = Vertex{ 12.0, 100, }
{40.68433 74.39967} map[test:{12 100} Bell Labs:{40.68433 74.39967}]
說明:
Go 中的映射順序「」取決於用於防止拒絕服務攻擊的隨機雜湊函數。根據 Go 問題追蹤器 (http://code.google.com/p/go/issues/detail?id=2630),根據規範,不保證地圖順序。 根據規範,映射是具有唯一鍵的無序元素組。未來的實作可以更改映射的順序,而無需在程式碼中進行修改。因此,在 Go 中,不建議依賴特定的映射順序。以上是Go Map 迭代順序取決於鍵插入順序嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!