2013-02-18 78 views
7

मुझे गो में मानचित्रों के लिए पॉइंटर्स बनाने में थोड़ा परेशानी हो रही है। क्या आप कृपया मुझे बता सकते हैं कि क्या मैं मानचित्र पैरामीटर को सही तरीके से पास कर रहा हूं? यह structs के साथ पूर्णांक मूल्य जोड़ता है।गोलांग में मानचित्रों को पास करने वाले पॉइंटर्स

type symbol_table struct{ 
        --- 
        --- 
        --- 
    } 
    //is the map parameter being called correctly? 
func TD(..., symbolMAP *map[int]symbol_table, ...){ 

        --- 
        --- 
        --- 
    } 
    func main(){ 
       symbolMAP:=make(map[int] symbol_table) 
       TD(&symbolMAP) 
     } 
+7

पॉइंटर क्यों पास करें? एक नक्शा पहले से ही एक संदर्भ प्रकार है। मानचित्र में परिवर्तन अन्य चर से देखे जाएंगे। और आप क्या त्रुटियां प्राप्त कर रहे हैं? आपके प्रश्न में inforamtion की कमी है। –

+0

धन्यवाद, मुझे एहसास हुआ कि मैंने पोस्ट किया है कि एमएपी पहले से ही एक संदर्भ प्रकार है। मैंने अपने कोड में सुधार किया है। मुझे दृढ़ विश्वास है कि मेरी समस्या कहीं और झूठ बोल रही है। जब मैं अपनी समस्या को बेहतर जानता हूं तो मैं इस पोस्ट पर वापस आऊंगा। – progfan

+1

"परेशानी" का क्या अर्थ है? आपको कुछ प्रकार की संकलन त्रुटि मिलती है? यह सही उत्पादन का उत्पादन नहीं करता है? – newacct

उत्तर

8

हां, आप इसे सही तरीके से पारित कर रहे हैं, हालांकि मूर्खतापूर्ण नहीं। जैसा कि सिस्टम ने इंगित किया है, इसके लिए एक सूचक के बजाय मानचित्र को पास करना लगभग हमेशा बेहतर होता है।

अब सवाल पर एक टिप्पणी, राहुल, आपको "बाद में इस पोस्ट पर वापस नहीं जाना चाहिए।" यह स्टैक ओवरफ्लो का उपयोग करने का तरीका नहीं है। आपके द्वारा पूछा गया प्रश्न अपेक्षाकृत सरल था ("क्या आप कृपया मुझे बता सकते हैं कि क्या मैं नक्शा पैरामीटर सही तरीके से पास कर रहा हूं?") और आपने अपने नमूना कोड के साथ पर्याप्त जानकारी प्रदान की है ताकि एक साधारण उत्तर जैसे कि मैंने अभी दिया है। आपको एक जवाब स्वीकार करना चाहिए, या, यदि आप अपने प्रश्न पूछने से बहुत खेद करते हैं, तो सवाल पूरी तरह से हटा दें।

आपने अन्य प्रश्नों के बारे में बताया है। यह ठीक है, लेकिन वे यहां नहीं हैं और इस प्रश्न को अनुत्तरित राज्य में छोड़ने का कोई कारण नहीं है। जब आपने अपने नए प्रश्न बनाये हैं, तो उन्हें नए और अलग प्रश्नों के रूप में पोस्ट करें।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मैं आपके पॉइंटर्स को दिमाग में रखूंगा! – progfan

+1

मानचित्र को बेहतर तरीके से पारित करना बेहतर क्यों है? मेरे पास नक्शा एक संरचना में एक राज्य है और यह महत्वपूर्ण है कि यह अपडेट हो जाए, लेकिन मैं यह चुनने में सक्षम होना चाहता हूं कि मैं कौन सा नक्शा पास करता हूं, इसलिए उस मानचित्र पर एक पॉइंटर पास करना जिसे मैं अपडेट करना चाहता हूं वह महत्वपूर्ण है। – Pinocchio

5

जैसा कि पहले से ही टिप्पणियों में उल्लेख किया गया है, को मानचित्र पर पॉइंटर पास करने की आवश्यकता नहीं है

मानचित्र पहले से ही एक संदर्भ प्रकार है। मानचित्र में परिवर्तन अन्य चर से देखे जाएंगे।

यह भी देखें क्यू/ए: Go - Pointer to map