2013-07-11 5 views
7

पर पॉइंटर गैर-समग्र अक्षरों को पॉइंटर्स प्राप्त करने के लिए एक स्थापित पैटर्न है?गैर-मिश्रित शाब्दिक

x := 5 
y := &x 

उपर्युक्त कोड काम करता है, लेकिन यह बहुत ही वर्बोज़ है।

+0

मुझे नहीं पता कि इस कोड में क्या छोटा किया जा सकता है। आप सूचक एक्स को चर एक्स चाहते हैं? – topskip

+0

मुझे यह भी यकीन नहीं है कि यह कैसे अधिक संक्षिप्त हो सकता है। –

+0

"Awfully verbose"? I _verver_ _ever_ को ऐसी चीजें लिखनी पड़ीं ... – Volker

उत्तर

8

अगर मैं सही ढंग से समझते हैं कि x का केवल बिंदु int आवंटित करने के लिए है, मैं कुछ और भी सलाह देते हैं "वर्बोज़":

y := new(int) 
*y = 5 

मैं तुम्हारे पास क्या है की तुलना में यह किसी भी कम हो रही है नहीं दिख रहा। चूंकि & ऑपरेटर requires इसके ऑपरेंड को या तो एड्रेसेबल या एक समग्र शाब्दिक होने के लिए, आप या तो कुछ पता करने के लिए जो कर रहे हैं, वह कर रहे हैं, या आप जो भी सुझाव दे सकते हैं और & से पूरी तरह से बच सकते हैं।

+2

यदि यह एक सामान्य प्रकार है, तो इसे 'func intPtr (i int) * int {return & i} func मुख्य() जैसे किसी फ़ंक्शन में लपेटना संभव है। { वाई: = intPtr (5) } ' http://play.golang.org/p/bIOUAua2b5 – losinggeneration

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