首頁 > 後端開發 > Golang > Go Map 迭代順序取決於鍵插入順序嗎?

Go Map 迭代順序取決於鍵插入順序嗎?

Barbara Streisand
發布: 2024-11-22 09:11:11
原創
483 人瀏覽過

Does Go Map Iteration Order Depend on Key Insertion Order?

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

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