io.TeeReader और io.Copy के बीच अंतर
गो में, io.TeeReader और io.Copy एक io से डेटा ट्रांसफर की सुविधा प्रदान करते हैं। एक io.लेखक के लिए पाठक. जबकि दोनों फ़ंक्शन इस उद्देश्य को पूरा करते हैं, वे अलग-अलग कार्यक्षमता प्रदान करते हैं। एक गंतव्य लेखक के लिए. यह पूरी तरह से डेटा ट्रांसफर पर केंद्रित है और कोई मान नहीं देता है।
io.TeeReader
io.TeeReader एक अधिक बहुमुखी दृष्टिकोण प्रदान करता है। io.Copy के विपरीत, io.TeeReader एक नया io.Reader बनाता है जो मूल रीडर को लपेटता है। इस नए रीडर से पढ़ते समय, डेटा एक साथ दिए गए io.Writer पर लिखा जाता है। यह सुविधा तब उपयोगी होती है जब आपको कॉपी किए गए डेटा का निरीक्षण और प्रसंस्करण दोनों करने की आवश्यकता होती है। कॉपी की गई सामग्री के MD5 हैश की गणना करते समय मानक आउटपुट के लिए एक रीडर।
io.TeeReader का उपयोग करना:
r := io.TeeReader(strings.NewReader(s), ओएस.स्टडआउट) h := md5.नया() यदि _, त्रुटि := io.Copy(h, r); त्रुटि !=शून्य { घबराहट(त्रुटि) } fmt.Printf('Hash: %x\n', h.Sum(nil))इस उदाहरण में, io.TeeReader हमें एक साथ कॉपी किए गए डेटा को मानक आउटपुट पर प्रिंट करने और MD5 हैश का उपयोग करके गणना करने की अनुमति देता है h.Sum(nil) function.io.MultiWriter
यह ध्यान देने योग्य है कि io.TeeReader की कार्यक्षमता io.MultiWriter का उपयोग करके भी प्राप्त की जा सकती है:
r := io.TeeReader(strings.NewReader(s), os.Stdout)
h := md5.New()
if _, err := io.Copy(h, r); err != nil { panic(err) }
fmt.Printf("Hash: %x\n", h.Sum(nil))
io.MultiWriter कई लेखकों को एक ही गंतव्य में जोड़ता है, प्रभावी ढंग से डेटा को एक साथ कई स्थानों पर लिखने की अनुमति देता है। इस मामले में, h हैश गणना के लिए कॉपी किया गया डेटा प्राप्त करता है, जबकि os.Stdout इसे प्रदर्शित करता है। अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3