Map golang地图打印出了问题

Map golang地图打印出了问题,map,go,Map,Go,为什么地图打印出了问题,我该如何处理 package main import ( "fmt" ) type monthsType struct { no int text string } var months = map[int]string{ 1:"January", 2:"Fabruary", 3:"March", 4:"April", 5:"May", 6:"June", 7:"July", 8:"August", 9:"Septembe

为什么地图打印出了问题,我该如何处理

package main

import (
    "fmt"
)

type monthsType struct {
    no   int
    text string
}

var months = map[int]string{
    1:"January", 2:"Fabruary", 3:"March", 4:"April", 5:"May", 6:"June",
    7:"July", 8:"August", 9:"September", 10:"October", 11:"Novenber", 12:"December",
}

func main(){
    for no, month := range months {
        fmt.Print(no)
        fmt.Println("-" + month)
    }
}
打印出:

10-October
7-July
1-January
9-September
4-April
5-May
2-Fabruary
12-December
11-Novenber
6-June
8-August
3-March
代码:

(大部分是从M.Summerfield那里偷来的)

输出:

use an array to access items by number:
 0: jan
 1: feb
maps are non-sorted:
 2: feb
 1: jan
access items via sorted list of keys::
 1: jan
 2: feb

地图未排序,因此您可以使用切片对地图进行排序。马克·萨默菲尔德的《围棋编程》一书在第204页解释了这一点,极力推荐

注意:这对于每种语言中所有基于哈希表的集合都是相同的:哈希过程会丢失顺序。@dystroy:除了“有序”哈希表数据之外structures@newacct它们不是“基于哈希表”:它们通常是两个结构,一个哈希表和一个数组的可能副本
use an array to access items by number:
 0: jan
 1: feb
maps are non-sorted:
 2: feb
 1: jan
access items via sorted list of keys::
 1: jan
 2: feb