किसी फ़ोल्डर में फ़ाइलों के माध्यम से पुनरावृत्त करने और उनकी सामग्री को पढ़ने का प्रयास करते समय, आपको त्रुटि का सामना करना पड़ सकता है: "एकाधिक असाइनमेंट में z (टाइप स्ट्रिंग) को []बाइट असाइन नहीं किया जा सकता।" आइए कोड और इस त्रुटि के पीछे के कारण की जांच करें।
प्रदान किए गए कोड स्निपेट में, ReadFile() फ़ंक्शन का उपयोग फ़ाइल की सामग्री को पढ़ने के लिए किया जाता है और दो मान लौटाता है: बाइट्स का एक टुकड़ा ([]बाइट ) जिसमें फ़ाइल सामग्री और कोई त्रुटि हो, यदि कोई हो। कोड दोनों मानों को एक ही वेरिएबल z पर निर्दिष्ट करने का प्रयास करता है, जो स्ट्रिंग प्रकार का है। हालाँकि, यह असाइनमेंट अमान्य है क्योंकि आप एकाधिक असाइनमेंट में एक स्ट्रिंग वेरिएबल के लिए []बाइट मान निर्दिष्ट नहीं कर सकते हैं।
इस समस्या को हल करने के लिए, आपको ReadFile() द्वारा लौटाए गए दो मानों के असाइनमेंट को अलग करना होगा। :
buf, err := ioutil.ReadFile(z)
if err != nil {
log.Fatal(err)
}
यहाँ, buf प्रकार का है []बाइट, और err प्रकार की त्रुटि है, इसलिए असाइनमेंट मान्य है। एक बार जब आप फ़ाइल की सामग्री पढ़ लेते हैं, तो यदि आवश्यक हो तो आप इसे एक स्ट्रिंग में परिवर्तित कर सकते हैं:
z = string(buf)
वैकल्पिक रूप से, आप सीधे buf के साथ काम कर सकते हैं, जो दर्शाता है फ़ाइल सामग्री के कच्चे बाइट्स को स्ट्रिंग में परिवर्तित किए बिना। इससे प्रदर्शन में सुधार हो सकता है और संभावित रूपांतरण समस्याओं से बचा जा सकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3