golang地图打印不按顺序

前端之家收集整理的这篇文章主要介绍了golang地图打印不按顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么地图打印不正常,我该如何按顺序打印?
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. )
  6.  
  7. type monthsType struct {
  8. no int
  9. text string
  10. }
  11.  
  12. var months = map[int]string{
  13. 1:"January",2:"Fabruary",3:"March",4:"April",5:"May",6:"June",7:"July",8:"August",9:"September",10:"October",11:"Novenber",12:"December",}
  14.  
  15. func main(){
  16. for no,month := range months {
  17. fmt.Print(no)
  18. fmt.Println("-" + month)
  19. }
  20. }

打印出来:

  1. 10-October
  2. 7-July
  3. 1-January
  4. 9-September
  5. 4-April
  6. 5-May
  7. 2-Fabruary
  8. 12-December
  9. 11-Novenber
  10. 6-June
  11. 8-August
  12. 3-March
码:
  1. func DemoSortMap() (int,error) {
  2. fmt.Println("use an array to access items by number:")
  3. am := [2]string{"jan","feb"}
  4. for i,n := range am {
  5. fmt.Printf("%2d: %s\n",i,n)
  6. }
  7. fmt.Println("maps are non-sorted:")
  8. mm := map[int]string{2: "feb",1: "jan"}
  9. for i,n := range mm {
  10. fmt.Printf("%2d: %s\n",n)
  11. }
  12. fmt.Println("access items via sorted list of keys::")
  13. si := make([]int,len(mm))
  14. for i := range mm {
  15. si = append(si,i)
  16. }
  17. sort.Ints(si)
  18. for _,i := range si {
  19. fmt.Printf("%2d: %s\n",mm[i])
  20. }
  21.  
  22. return 0,nil
  23. }

(其中大部分是从M. Summerfield的book中偷走的)

输出

  1. use an array to access items by number:
  2. 0: jan
  3. 1: feb
  4. maps are non-sorted:
  5. 2: feb
  6. 1: jan
  7. access items via sorted list of keys::
  8. 1: jan
  9. 2: feb

猜你在找的Go相关文章