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

मैं गो में एक स्ट्रिंग को []बाइट असाइन क्यों नहीं कर सकता?

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

Why Can\'t I Assign []byte to a String in Go?

बाइट असाइनमेंट को समझने में त्रुटि: स्ट्रिंग को []बाइट असाइन नहीं किया जा सकता

किसी फ़ोल्डर के भीतर फ़ाइलों को पढ़ने के आपके प्रयास में, आपको त्रुटि का सामना करना पड़ा किसी फ़ाइल की सामग्री को पढ़ने का प्रयास करते समय "एकाधिक असाइनमेंट में z (प्रकार स्ट्रिंग) को []बाइट असाइन नहीं किया जा सकता"। आइए इस त्रुटि के पीछे के कारण पर गौर करें।

एकाधिक असाइनमेंट को समझना

जब एकाधिक चर को एक ही पंक्ति में मान निर्दिष्ट किए जाते हैं, जैसा कि आपके कोड में है:

z, err := ioutil.ReadFile(z)

प्रत्येक चर के बाईं ओर असाइनमेंट ऑपरेटर को फ़ंक्शन द्वारा लौटाया गया संबंधित मान प्राप्त होता है। इस स्थिति में, ioutil.ReadFile फ़ंक्शन दो मान लौटाता है: []बाइट (बाइनरी डेटा) और त्रुटि।

स्ट्रिंग्स को बाइट्स असाइन करना

समस्याग्रस्त भाग प्रयास कर रहा है ioutil.ReadFile से लौटाए गए []बाइट (बाइनरी डेटा) को z वेरिएबल में असाइन करने के लिए, जिसे एक स्ट्रिंग के रूप में घोषित किया गया है। यहीं पर त्रुटि उत्पन्न होती है क्योंकि z एक स्ट्रिंग मान की अपेक्षा करता है, बाइनरी डेटा की नहीं।

Solution

इस त्रुटि को हल करने के लिए, आपके पास दो विकल्प हैं:

  1. स्ट्रिंग() फ़ंक्शन का उपयोग करके []बाइट को एक स्ट्रिंग में बदलें:
buf, err := ioutil.ReadFile(z)
if err != nil {
    log.Fatal(err)
}
z = string(buf)
  1. z को एक स्ट्रिंग के बजाय []बाइट के रूप में घोषित करें:
var z []byte
z, err := ioutil.ReadFile(z)

बाइनरी डेटा के साथ काम करना

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

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

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

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

Copyright© 2022 湘ICP备2022001581号-3