] । यह अप्रत्याशित व्यवहार को जन्म दे सकता है, जैसा कि निम्नलिखित गो कोड में देखा गया है:
आयात "fmt" टाइप मायटाइप स्ट्रक्चर { फ़ील्ड स्ट्रिंग } func मुख्य () { var सरणी [10] MyType के लिए _, ई: = रेंज सरणी { ई.फ़ील्ड = "फू" } के लिए _, ई: = रेंज सरणी { fmt.println (E.field) fmt.println ("-") } }
इस उदाहरण में, इरादा सरणी में प्रत्येक तत्व के "फ़ील्ड" संपत्ति को संशोधित करना है। हालाँकि, चूंकि रेंज स्टेटमेंट मान की एक प्रति लौटाता है, इसलिए परिवर्तन एक स्थानीय कॉपी में किए जाते हैं और मूल सरणी को प्रभावित नहीं करते हैं। नतीजतन, आउटपुट डिफ़ॉल्ट मान के रूप में सभी "फ़ील्ड" गुणों को दिखाता है। इसके बजाय, आपको सूचकांक का उपयोग करके सरणी के माध्यम से पुनरावृति करनी चाहिए, जैसा कि नीचे दिखाया गया है: func मुख्य () { var सरणी [10] MyType IDX के लिए, _: = रेंज सरणी { सरणी [idx] .field = "फू" } के लिए _, ई: = रेंज सरणी { fmt.println (E.field) fmt.println ("-") } }
के लिए लूप में मान के बजाय सूचकांक का उपयोग करके, आप यह सुनिश्चित करते हैं कि "फ़ील्ड" संपत्ति में किए गए परिवर्तन मूल सरणी में परिलक्षित होते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3