"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो का "*" संशोधक: पास-बाय-वैल्यू या पास-बाय-रेफरेंस?

गो का "*" संशोधक: पास-बाय-वैल्यू या पास-बाय-रेफरेंस?

2025-03-23 ​​पर पोस्ट किया गया
ब्राउज़ करें:480

] गो में, ऐसा करने के दो मुख्य तरीके हैं: मूल्य से गुजरना या संदर्भ से गुजरना। उत्तरार्द्ध में "*" संशोधक का उपयोग शामिल है, जो शुरुआती लोगों के लिए भ्रामक हो सकता है।

Go's जावा में, संदर्भ द्वारा किसी वस्तु को पारित करना सीधा है, क्योंकि वस्तुओं को स्वाभाविक रूप से संदर्भ के रूप में पारित किया जाता है। हालाँकि, गो में, जो पास-बाय-वैल्यू और पास-बाय-रेफरेंस दोनों की अनुमति देता है, पॉइंटर्स का उपयोग करना अधिक कुशल हो सकता है। उदाहरण के लिए, Func puttasks (db

sql.db) इंगित करता है कि DB पैरामीटर SQL.DB ऑब्जेक्ट के लिए एक पॉइंटर है। इसका कारण यह है कि GO तकनीकी रूप से केवल पास-बाय-वैल्यू का समर्थन करता है, और एक पॉइंटर को पास करना पास-बाय-रेफरेंस को अनुकरण करने का एक तरीका है।

जब आप एक पॉइंटर पास करते हैं, तो आप एक मान (पॉइंटर ही) पास कर रहे हैं जो स्मृति में वास्तविक ऑब्जेक्ट को इंगित करता है। इसका मतलब यह है कि पॉइंटर के माध्यम से ऑब्जेक्ट में किए गए परिवर्तन फ़ंक्शन के लिए पारित मूल चर में परिलक्षित होंगे। दूसरी ओर, सीधे मान को पारित करना (" *" के बिना) मूल मान की एक प्रति बनाता है, इसलिए फ़ंक्शन में किए गए परिवर्तन मूल चर को प्रभावित नहीं करेंगे।

प्रदान किया गया उदाहरण, फंक प्रिंटपर्सन (पी *व्यक्ति), एक पॉइंटर की आवश्यकता होती है क्योंकि इसे अपने विवरण को प्रिंट करने के लिए व्यक्ति वस्तु को संशोधित करने की आवश्यकता होती है। यदि इसके बजाय एक मान प्राप्त हुआ, तो कोई भी परिवर्तन केवल फ़ंक्शन के भीतर रखी गई प्रतिलिपि को प्रभावित करेगा। पॉइंटर्स का उपयोग करना जब उपयुक्त हो तो प्रदर्शन में सुधार कर सकता है और कार्यों और कॉलर कोड के बीच स्थिरता बनाए रख सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3