] हालांकि, उनकी पेचीदगियों को समझना शुरुआती लोगों के लिए चुनौतीपूर्ण हो सकता है। ऐसा ही एक पहलू फिर से स्लाइसिंग स्लाइस की अवधारणा है।
निम्नलिखित कोड पर विचार करें:
आयात "fmt" func मुख्य () { A: = मेक ([] int, 5) PrintSlice ("A", a) B: = मेक ([] int, 0, 5) PrintSlice ("B", b) c: = b [: 2] PrintSlice ("C", c) D: = C [2: 5] PrintSlice ("d", d) } Func printslice (s string, x [] int) { fmt.printf ("%s len =%d cap =%d%v \ n", एस, लेन (एक्स), कैप (एक्स), एक्स) }कार्यक्रम चार स्लाइस बनाता है: ए, बी, सी, और डी। आश्चर्यजनक परिणाम यह है कि स्लाइस सी, बी के पहले दो तत्वों के स्लाइस के रूप में बनाया गया है, इस व्यवहार को समझने के लिए 2 के बजाय 2 के बजाय 5 की क्षमता है। । गो में, स्लाइस वास्तविक डेटा को संग्रहीत नहीं करते हैं; बल्कि, वे एक अंतर्निहित सरणी का संदर्भ देते हैं। जब एक स्लाइस बनाया जाता है, तो यह इस अंतर्निहित सरणी के एक खंड की ओर इशारा करता है। । जब स्लाइस सी बी से बनाया जाता है, तो यह बी के पहले दो तत्वों पर एक खिड़की बन जाता है। हालाँकि, अंतर्निहित सरणी और इस प्रकार C की क्षमता 5 बनी हुई है, जिसमें b में अप्रयुक्त स्लॉट शामिल हैं। मुख्य() { B: = मेक ([] int, 0, 5) c: = b [: 2] d: = c [1: 5] // यह d के बराबर है: = b [1: 5] d [0] = 1 PrintSlice ("C", c) PrintSlice ("d", d) }
इस मामले में, डी के मान को संशोधित करना भी C के मान को संशोधित करता है, यह प्रदर्शित करता है कि C और D एक ही अंतर्निहित सरणी पर केवल अलग-अलग खिड़कियां हैं। गो में स्लाइस के साथ प्रभावी ढंग से काम करने के लिए स्लाइसिंग महत्वपूर्ण है। यह आपको उन स्लाइस बनाने की अनुमति देता है जो गतिशील रूप से विभिन्न डेटा आकारों में समायोजित करते हैं, जो मेमोरी को कॉपी करने या वास्तविकता की आवश्यकता के बिना।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3