小编典典

映射订单范围循环

go

我正在寻找一种确定范围的方法Go map

Golang规范指出以下内容:

未指定地图的迭代顺序,并且不能保证每次迭代之间都相同。如果在迭代过程中删除尚未到达的映射条目,则不会生成相应的迭代值。如果映射条目是在迭代过程中创建的,则该条目可能在迭代过程中产生或可以被跳过。对于创建的每个条目以及从一个迭代到下一个迭代,选择可能有所不同。如果映射为nil,则迭代次数为0。

我在StackOverflow和Googling上找到的所有方法都是( imho )我不喜欢的解决方法。

有没有可靠的方法可以遍历地图并按插入顺序检索项目?

我找到的解决方案是:

  • 在两个单独的片段中跟踪键和值:听起来像“不使用地图”,失去了使用地图的所有优点。

  • 使用映射,但要跟踪不同切片中的键:这意味着数据重复,这可能导致数据未对齐,并最终可能带来大量错误和痛苦的调试。

你有什么建议?


根据可能的重复标记进行编辑。

我的问题和所提供的问题之间有细微的差别,两个问题都要求按照字典顺序来遍历地图。相反,我特别问过:

有没有一种可靠的方法可以遍历地图并按 插入顺序检索项目

这不是字典,因此与@gramme.ninja问题不同:

我如何才能使键按顺序排列/对地图进行排序,以使键按顺序排列并且值对应?


阅读 81

收藏
2020-07-02

共1个答案: 请登录查看