猿问

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

我目前的 golang 项目有问题。


我有另一个包,结果是一个带有预先确定的键的数组,例如:


package updaters


var CustomSql map[string]string


func 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 First

ShouldBeSecond = Text Should Be Second

ShouldBeThird = Text Should Be Third

ShouldBeFourth = Text Should Be Fourth

Anyhelp 将不胜感激,谢谢。


互换的青春
浏览 94回答 1
1回答

HUH函数

语言规范说未指定地图上的迭代顺序,并且不保证从一次迭代到下一次迭代是相同的。要以已知顺序迭代一组固定的键,请将这些键存储在切片中并迭代切片元素。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)}
随时随地看视频慕课网APP

相关分类

Go
我要回答