golang map遍歷爲什麼是無序的? golang map遍歷爲什麼是無序的?

golang map遍歷爲什麼是無序的?

遍歷map

package main

import "fmt"

func main() {
    var m = map[string]string{
        "zhangsan": "張三",
        "lisi":     "李四",
        "wangwu":   "王五",
        "alici":    "愛麗絲",
    }

    for k, v := range m {
        fmt.Println(k, v)
    }
    fmt.Println("----------分隔符------------")
    for k, v := range m {
        fmt.Println(k, v)
    }
}
zhangsan 張三
lisi 李四
wangwu 王五
alici 愛麗絲
----------分隔符------------
lisi 李四
wangwu 王五
alici 愛麗絲
zhangsan 張三

map底層使用哈希表實現,在運行過程中會進行擴容,擴容後順序會發生變化;但是如果不進行擴容的話,是可以保證有序的;那爲什麼即使沒有發生擴容,也還是無序的呢?

這是爲了避免程序員以來這種不穩定的特性,所以遍歷時故意加了隨機數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章