मैं अब भी हैरान हूं कि हम new
गो में क्यों हैं ।
जब आप किसी संरचना को त्वरित करना चाहते हैं, तो आप करते हैं
t := Thing{}
और आप एक नए उदाहरण के लिए एक पॉइंटर प्राप्त कर सकते हैं
t := &Thing{}
लेकिन यह संभावना भी है:
t := new(Thing)
यह आखिरी भाषा के बाकी हिस्सों के लिए थोड़ा विदेशी लगता है। &Thing{}
के रूप में स्पष्ट और संक्षिप्त है new(Thing)
और यह केवल उन निर्माणों का उपयोग करता है जिन्हें आप अक्सर कहीं और उपयोग करते हैं। यह और भी एक्स्टेंसिबल है क्योंकि आप इसे बदल सकते हैं &Thing{3}
या कर सकते हैं &Thing{Feets:7}
।
मेरी राय में, एक अनुपूरक कीवर्ड 1 होना महंगा है, यह भाषा को अधिक जटिल बनाता है और आपको जो जानना चाहिए, उसे जोड़ता है। और यह नए लोगों को मुखौटा लगा सकता है कि एक संरचना को तत्काल करने के पीछे क्या है।
यह एक और आरक्षित शब्द भी बनाता है।
तो इसके पीछे क्या कारण है new
? क्या यह कभी-कभी उपयोगी होता है? क्या हमें इसका उपयोग करना चाहिए?
1 : हाँ, मुझे पता है कि यह व्याकरण के स्तर पर एक कीवर्ड नहीं है, आप इसे छाया कर सकते हैं , लेकिन यह उचित डेवलपर, एक आरक्षित शब्द के लिए तथ्य को नहीं बदलता है।