为什么地图打印不正常,我该如何按顺序打印?
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
码:
func DemoSortMap() (int,error) { fmt.Println("use an array to access items by number:") am := [2]string{"jan","feb"} for i,n := range am { fmt.Printf("%2d: %s\n",i,n) } fmt.Println("maps are non-sorted:") mm := map[int]string{2: "feb",1: "jan"} for i,n := range mm { fmt.Printf("%2d: %s\n",n) } fmt.Println("access items via sorted list of keys::") si := make([]int,len(mm)) for i := range mm { si = append(si,i) } sort.Ints(si) for _,i := range si { fmt.Printf("%2d: %s\n",mm[i]) } return 0,nil }
(其中大部分是从M. Summerfield的book中偷走的)
输出:
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