我目前的 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)
}
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消