首页 > 后端开发 > Golang > Go Map 迭代顺序取决于键插入顺序吗?

Go Map 迭代顺序取决于键插入顺序吗?

Barbara Streisand
发布: 2024-11-22 09:11:11
原创
498 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板