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
底層使用哈希表實現,在運行過程中會進行擴容,擴容後順序會發生變化;但是如果不進行擴容的話,是可以保證有序的;那爲什麼即使沒有發生擴容,也還是無序的呢?
這是爲了避免程序員以來這種不穩定的特性,所以遍歷時故意加了隨機數