golang

2015-02-12 12 views
23

में एक नेस्टेड struct अंदर structs की एक सरणी प्रारंभ मैं सोच रहा हूँ मैं कैसे परिभाषित कर सकते हैं और प्रारंभ और एक नेस्टेड struct अंदर structs की सरणी, उदाहरण के लिए:golang

type State struct { 
    id string `json:"id" bson:"id"` 
    Cities 
} 

type City struct { 
    id string `json:"id" bson:"id"` 
} 

type Cities struct { 
    cities []City 
} 

अब मैं इस तरह की संरचना कैसे प्रारंभ कर सकते हैं और अगर किसी के पास संरचना बनाने के तरीके के बारे में एक अलग विचार है।

धन्यवाद

उत्तर

26

आपके मामले में आशुलिपि शाब्दिक वाक्य रचना होगा:

state := State { 
    id: "CA", 
    Cities: Cities{ 
     []City { 
      {"SF"}, 
     }, 
    }, 
} 

या कम अगर तुम नहीं है कुंजी हैं: शाब्दिक के लिए मूल्य वाक्य रचना:

state := State { 
    "CA", Cities{ 
     []City { 
      {"SF"}, 
     }, 
    }, 
}  

BTW अगर शहरों में [] शहर के अलावा कुछ भी नहीं है, तो बस शहर के एक टुकड़े का उपयोग करें। यह एक कुछ कम वाक्य रचना के लिए नेतृत्व करेंगे, और एक अनावश्यक (संभवतः) परत को हटा दें: बाहर लिखा सब कुछ स्पष्ट रूप से

type State struct { 
    id string `json:"id" bson:"id"` 
    Cities []City 
} 

type City struct { 
    id string `json:"id" bson:"id"` 
} 


func main(){ 
    state := State { 
     id: "CA", 
     Cities: []City{ 
      {"SF"}, 
     }, 
    } 

    fmt.Println(state) 
} 
+0

बिल्कुल सही, मुझे लगता है कि इस समय जब तक मैं इस्तेमाल किया नहीं कर रहा हूँ जावा में काम करने के सभी वर्षों के बाद, गो में एम्बेडेड चीज और नेस्टेड स्ट्रक्चर के लिए पर्याप्त, यह मेरे लिए बिल्कुल नया है, लेकिन बहुत बहुत धन्यवाद: डी – user2422033

6

पूर्ण उदाहरण:

state := State{ 
    id: "Independent Republic of Stackoverflow", 
    Cities: Cities{ 
     cities: []City{ 
      City{ 
       id: "Postington O.P.", 
      }, 
     }, 
    }, 
} 

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