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

मैं गो में ऐरे तत्वों को सीधे वेरिएबल्स में कैसे अनपैक कर सकता हूं?

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

How Can I Unpack Array Elements Directly into Variables in Go?

गो में ऐरे तत्वों को अनपैक करना

गो में ऐरे तत्वों को सीधे वेरिएबल्स में अनपैक करने के लिए सुविधाजनक सिंटैक्स का अभाव है जो पायथन में पाया जाता है। जबकि मध्यवर्ती चर का उपयोग करने वाला प्रश्नकर्ता का प्रारंभिक दृष्टिकोण काम करता है, यह अव्यवस्थित कोड का कारण बन सकता है, विशेष रूप से जटिल परिदृश्यों में।

एकाधिक रिटर्न मान

इसे संबोधित करने के लिए, अनुशंसित समाधान एक ऐसा फ़ंक्शन बनाना है जो एकाधिक मान लौटाता है। उदाहरण के लिए, एक स्ट्रिंग को विभाजित करने और परिणामों को दो वेरिएबल्स में अनपैक करने के लिए, इस तरह के फ़ंक्शन का उपयोग किया जा सकता है:

func splitLink(s, sep string) (string, string) {
    x := strings.Split(s, sep)
    return x[0], x[1]
}

इस फ़ंक्शन के साथ, स्प्लिट स्ट्रिंग को अनपैक करने के लिए निम्नलिखित कोड का उपयोग किया जा सकता है:

name, link := splitLink("foo\thttps://bar", "\t")

वेरिएडिक पॉइंटर तर्क

एक अन्य दृष्टिकोण वैरिएडिक पॉइंटर तर्कों का उपयोग करना है, जो एकाधिक की अनुमति देता है किसी फ़ंक्शन में पास किए जाने वाले पॉइंटर वेरिएबल और किसी ऐरे के मान असाइन किए जाने चाहिए। यहां बताया गया है कि यह कैसे काम करता है:

func unpack(s []string, vars... *string) {
    for i, str := range s {
        *vars[i] = str
    }
}

किसी सरणी को अनपैक करने के लिए, नीचे दिए गए कोड का उपयोग किया जा सकता है:

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)

यह दृष्टिकोण किसी भी आकार के सरणियों को अनपैक करने की अनुमति देता है, लेकिन इसके लिए चर की स्पष्ट घोषणा की आवश्यकता होती है और कुछ डेवलपर्स द्वारा इसे कम पठनीय माना जाता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3