Golang - map如何顺序读取


    map用for range遍历不能保证顺序输出,原因:在range时为引用类型(slice,map,channel)创建索引,而map的索引是未被指定的,所以无序。

  解决方案:通过sort中的排序包进行对map中的key进行排序。

package main import ( "fmt"
    "sort" ) func main() { var m = map[string]int{ "9": 0, "2": 1, "5": 2, "1": 3, } var keys []string
    for k := range m { keys = append(keys, k) } sort.Strings(keys) //升序 for _, k := range keys { fmt.Println("Key:", k, "Value:", m[k]) } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM