为什么不能按插入顺序迭代地图?

为什么不能按插入顺序迭代地图?,第1张

为什么不能按插入顺序迭代地图

Go地图不保持插入顺序;您将必须自己实现此行为。

例:

type NavigationMap struct {    m map[string]navbarTab    keys []string}func NewNavigationMap() *NavigationMap { ... }func (n *NavigationMap) Set(k string, v navbarTab) {    n.m[k] = v    n.keys = append(n.keys, k)}

本示例不完整,并且未涵盖所有用例(例如,更新重复键上的插入顺序)。

如果您的用例包括多次重新插入相同的键(如果键 k 已在映射中,则不会更新键 k的 插入顺序):

func (n *NavigationMap) Set(k string, v navbarTab) {    _, present := n.m[k]    n.m[k] = v    if !present {        n.keys = append(n.keys, k)    }}

选择满足您要求的最简单的方法。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4925344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存