为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 golang 中调整数组以不随机化预定键?

如何在 golang 中调整数组以不随机化预定键?

Go
互换的青春 2023-06-01 18:05:58
我目前的 golang 项目有问题。我有另一个包,结果是一个带有预先确定的键的数组,例如:package updatersvar CustomSql map[string]stringfunc InitSqlUpdater() {    CustomSql = map[string]string{        "ShouldBeFirst": "Text Should Be First",        "ShouldBeSecond": "Text Should Be Second",        "ShouldBeThird": "Text Should Be Third",        "ShouldBeFourth": "Text Should Be Fourth"   }}并将其发送到 main.go,以迭代每个索引和值,但结果是随机的(在我的情况下,我需要按顺序)。真实案例: https: //play.golang.org/p/ONXEiAj-Q4v我用谷歌搜索为什么 golang 以随机方式迭代,示例使用排序,但我的数组键是预先确定的,排序仅适用于 asc desc 字母表和数字。那么,我怎样才能实现数组在迭代中不被随机化的方式呢?ShouldBeFirst = Text Should Be FirstShouldBeSecond = Text Should Be SecondShouldBeThird = Text Should Be ThirdShouldBeFourth = Text Should Be FourthAnyhelp 将不胜感激,谢谢。
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

语言规范说

未指定地图上的迭代顺序,并且不保证从一次迭代到下一次迭代是相同的。

要以已知顺序迭代一组固定的键,请将这些键存储在切片中并迭代切片元素。

var orderdKeys = []string{

   "ShouldBeFirst", 

   "ShouldBeSecond",

   "ShouldBeThird",

   "ShouldBeFourth",

}


for _, k := range orderdKeys {

    fmt.Println(k+" = "+CustomSql[k])

}

另一种选择是使用一片值:


 type nameSQL struct {

   name string

   sql string

}


CustomSql := []nameSQL{

   {"ShouldBeFirst", "Text Should Be First"},

   {"ShouldBeSecond", "Text Should Be Second"},

   {"ShouldBeThird", "Text Should Be Third"},

   {"ShouldBeFourth", "Text Should Be Fourth"},

}


for _, ns := range CustomSql {

    fmt.Println(ns.name+" = "+ns.sql)

}


查看完整回答
反对 回复 2023-06-01
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信