2016-03-30 9 views
13

क्या गोलांग में string को io.Writer प्रकार में परिवर्तित करना संभव है?गोलांग कनवर्ट स्ट्रिंग को io.Writer?

मैं इस स्ट्रिंग का उपयोग fmt.Fprintf() में करूँगा लेकिन मैं इस प्रकार को रूपांतरित करने में असमर्थ हूं।

+2

fmt.Sprintf का उपयोग क्यों नहीं है()? – Uvelichitel

उत्तर

27

आप गो में string, string एस में लिख नहीं सकते हैं अपरिवर्तनीय हैं।

सबसे अच्छा विकल्प bytes.Buffer प्रकार है: यह लागू करता io.Writer ताकि आप इसे में लिख सकते हैं, और आप Buffer.String() साथ या Buffer.Bytes() के साथ एक बाइट टुकड़ा के रूप में एक string के रूप में अपनी सामग्री प्राप्त कर सकते हैं।

s := "Hello" 
buf := bytes.NewBufferString(s) 
fmt.Fprint(buf, ", World!") 
fmt.Println(buf.String()) 

आउटपुट (Go Playground पर यह कोशिश):

Hello, World! 

आप तो

तुम भी बफर के एक string के रूप में प्रारंभिक सामग्री यदि आप bytes.NewBufferString() साथ बफर बनाने में हो सकता है string प्रकार के एक चर को जोड़ना चाहते हैं, आप बस Buffer.WriteString():

s2 := "to be appended" 
buf.WriteString(s2) 
01 का उपयोग कर सकते हैं

या:

fmt.Fprint(buf, s2) 

भी ध्यान रखें कि अगर आप सिर्फ श्रेणीबद्ध करने के लिए 2 string रों चाहते हैं, आप एक बफर बना सकते हैं और fmt.Fprintf() उपयोग करने के लिए की जरूरत नहीं है, तो आप बस उन्हें श्रेणीबद्ध करने के लिए + ऑपरेटर का उपयोग कर सकते हैं:

s := "Hello" 
s2 := ", World!" 

s3 := s + s2 // "Hello, World!" 

यह भी देखें: Golang: format a string without printing?

+0

क्या आप मुझे उदाहरण दे सकते हैं कि मैं फ़ंक्शन fmt.Fprintf() फ़ंक्शन में स्ट्रिंग के प्रकार के साथ एक चर का उपयोग कैसे कर सकता हूं। :) – Acidic

संबंधित मुद्दे