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底层使用哈希表实现,在运行过程中会进行扩容,扩容后顺序会发生变化;但是如果不进行扩容的话,是可以保证有序的;那为什么即使没有发生扩容,也还是无序的呢?

这是为了避免程序员以来这种不稳定的特性,所以遍历时故意加了随机数

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容