美文网首页
Golang中map的顺序输出

Golang中map的顺序输出

作者: DevilRoshan | 来源:发表于2020-03-26 23:28 被阅读0次

    Golang中map的遍历输出的时候是无序的,不同的遍历会有不同的输出结果,如果想要顺序输出的话,需要额外保存顺序,例如使用slice,将slice中排序,再通过slice的顺序去读取。

    package main
    
    import (
        "fmt"
        "sort"
    )
    
    func main() {
        /* 声明索引类型为字符串的map */
        var testMap = make(map[string]string)
        testMap["Bda"] = "B"
        testMap["Ada"] = "A"
        testMap["Dda"] = "D"
        testMap["Cda"] = "C"
        testMap["Eda"] = "E"
    
        for key, value := range testMap {
            fmt.Println(key, ":", value)
        }
        var testSlice []string
        testSlice = append(testSlice, "Bda", "Ada", "Dda", "Cda", "Eda")
    
        /* 对slice数组进行排序,然后就可以根据key值顺序读取map */
        sort.Strings(testSlice)
        fmt.Println("排序输出:")
        for _, Key := range testSlice {
            /* 按顺序从MAP中取值输出 */
            if Value, ok := testMap[Key]; ok {
                fmt.Println(Key, ":", Value)
            }
        }
    }
    

    结果为:

    Eda : E
    Bda : B
    Ada : A
    Dda : D
    Cda : C
    排序输出:
    Ada : A
    Bda : B
    Cda : C
    Dda : D
    Eda : E
    

    相关文章

      网友评论

          本文标题:Golang中map的顺序输出

          本文链接:https://www.haomeiwen.com/subject/pgxkuhtx.html