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

गो में स्लाइस के एक टुकड़े को विविध तर्कों के रूप में कैसे पारित करें?

2024-11-07 को प्रकाशित
ब्राउज़ करें:421

How to Pass a Slice of Slices as Variadic Arguments in Go?

वैरिएडिक तर्कों के रूप में अनपैक्ड स्लाइस को पास करना

गो में, वैरिएडिक फ़ंक्शन एक विशिष्ट प्रकार के तर्कों की अनिश्चित संख्या को स्वीकार करते हैं। इस तरह के फ़ंक्शन में स्लाइस का एक टुकड़ा पास करते समय, इसमें शामिल प्रकार के रूपांतरण और अनपैकिंग तंत्र को समझना महत्वपूर्ण है। खोलना हालाँकि, यदि स्लाइस में स्लाइस के भीतर प्रकारों या स्लाइस का मिश्रण होता है, तो स्थिति अधिक जटिल हो जाती है। वैरिएडिक पैरामीटर के लिए मान के रूप में अपरिवर्तित पारित किया जाएगा यदि इसका पालन किया जाता है .... इसका मतलब है कि कोई नया स्लाइस नहीं बनाया जाएगा।

स्लाइस के स्लाइस के मामले में, स्लाइस को स्वयं असाइन नहीं किया जा सकता है विविध पैरामीटर के लिए (प्रकार का []इंटरफ़ेस{})। यही कारण है कि स्लाइसऑफस्लाइस... को अनपैक फ़ंक्शन में पास करने का प्रयास करते समय एक त्रुटि उत्पन्न होती है।

इस समस्या को हल करने के लिए, एक मध्यस्थ कदम की आवश्यकता है। उपयुक्त प्रकार का एक नया स्लाइस (इस मामले में [] इंटरफ़ेस {}) बनाया जाना चाहिए और स्लाइस के स्लाइस के तत्वों को इसमें कॉपी किया जाना चाहिए। इस नए स्लाइस को ....

का उपयोग करके अनपैक फ़ंक्शन में पास किया जा सकता है। उदाहरण के लिए:

var smashOfSlices2 []इंटरफ़ेस{} _, v के लिए := रेंज स्लाइसऑफस्लाइसेस { स्लाइसऑफस्लाइस2 = जोड़ें(स्लाइसऑफस्लाइस2, वी) } unpack(sliceOfSlices2...)

यह दृष्टिकोण सुनिश्चित करता है कि स्लाइस के प्रत्येक तत्व को अनपैक फ़ंक्शन में अलग से पास किया गया है, जैसा कि इरादा था।
            
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3