2012-08-24 13 views
6

नक्शा प्रिंटिंग आदेश से बाहर क्यों है, और मैं इसे क्रम में कैसे प्राप्त करूं?गोलांग नक्शा प्रिंट से बाहर

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 
+1

[Google गो लैंग असाइनमेंट ऑर्डर] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/11853396/google-go-lang-assignment-order) –

+7

ध्यान दें कि यह सभी हैश तालिका आधारित संग्रहों के लिए समान है हर भाषा: हैशिंग प्रक्रिया आदेश खो देता है। –

+0

@dystroy: "आदेश दिया गया" हैश तालिका डेटा संरचनाओं को छोड़कर – newacct

उत्तर

14

कोड:

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", i, n) 
    } 
    fmt.Println("access items via sorted list of keys::") 
    si := make([]int, 0, len(mm)) 
    for i := range mm { 
     si = append(si, i) 
    } 
    sort.Ints(si) 
    for _, i := range si { 
     fmt.Printf("%2d: %s\n", i, mm[i]) 
    } 

    return 0, nil 
} 

निर्गम (इसमें से अधिकांश एम 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 
5

मानचित्र क्रमबद्ध नहीं हैं ताकि आप अपने मानचित्र को सॉर्ट करने के लिए एक टुकड़ा का उपयोग कर सकें। मार्क समरफील्ड की पुस्तक "प्रोग्रामिंग इन गो" पृष्ठ 204 पर बताती है और इसकी अत्यधिक अनुशंसा की जाती है।

संबंधित मुद्दे