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) }}
选择满足您要求的最简单的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)