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

मैं गो में एक io.Reader को एक स्ट्रिंग में कुशलतापूर्वक कैसे परिवर्तित करूं?

2024-12-22 को प्रकाशित
ब्राउज़ करें:698

How Do I Efficiently Convert an io.Reader to a String in Go?

io.Reader से पढ़ें और Go में स्ट्रिंग में कनवर्ट करें

जब आपके पास एक io.ReadCloser ऑब्जेक्ट होता है, जैसे कि http.Response से प्राप्त एक, संपूर्ण को परिवर्तित करता है किसी स्ट्रिंग में स्ट्रीम करने के लिए बाइट सरणी की पूरी प्रतिलिपि की आवश्यकता होती है। हालांकि यह सबसे कुशल ऑपरेशन नहीं हो सकता है, यह इस रूपांतरण को प्राप्त करने का मानक और सुरक्षित तरीका है।

रूपांतरण करने के लिए, आप निम्नलिखित चरणों का उपयोग कर सकते हैं:

buf := new(bytes.Buffer)
buf.ReadFrom(yourReader)
s := buf.String() // Performs a complete copy of the bytes in the buffer.

यहां असुरक्षित पैकेज का उपयोग करने का एक उदाहरण दिया गया है:

buf := new(bytes.Buffer) buf.ReadFrom(yourReader) बी := buf.बाइट्स() s := *(*string)(unsafe.Pointer(&b))

buf := new(bytes.Buffer)
buf.ReadFrom(yourReader)
b := buf.Bytes()
s := *(*string)(unsafe.Pointer(&b))

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

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

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

Copyright© 2022 湘ICP备2022001581号-3