में सबस्ट्रिंग निकालने के लिए मैं कंसोल (व्हाइटस्पेस समेत) से एक पूरी लाइन पढ़ने की कोशिश कर रहा हूं, फिर इसे संसाधित करता हूं। bufio.ReadString का उपयोग करना, न्यू लाइन चरित्र इनपुट के साथ एक साथ पढ़ा जाता है, तो मैं निम्नलिखित कोड न्यू लाइन चरित्र ट्रिम करने के लिए के साथ आया था:गो
input,_:=src.ReadString('\n')
inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string
वहाँ यह करने के लिए एक और अधिक मुहावरेदार रास्ता नहीं है? यही है, क्या पहले से ही एक पुस्तकालय है जो आपके लिए सबस्ट्रिंग निकालने पर अंतहीन नल बाइट का ख्याल रखता है?
(हाँ, मुझे पता है कि पहले से ही go readline -> string में न्यू लाइन चरित्र के बिना एक पंक्ति को पढ़ने के लिए एक रास्ता है, लेकिन मैं सुंदर स्ट्रिंग परिवर्तन के लिए और अधिक रहा हूँ।)
आपको 0 (या :), 's = s [: len (s) -1] की भी आवश्यकता नहीं है। – uriel
स्पष्टीकरण के लिए बहुत बहुत धन्यवाद; ऐसा लगता है कि रीडस्ट्रिंग फ़ंक्शन से लौटने वाली स्ट्रिंग के अंत में _two_ व्हाइटस्पेस वर्ण थे, इसलिए मैंने एक शून्य बाइट के लिए गलत लगाया। सी तारों के साथ भ्रम के लिए खेद है; मैं bufio के साथ fmt का उपयोग कर रहा था जिसके परिणामस्वरूप कंसोल में दिखाई देने वाली मजेदार चीजें थीं, इसलिए मैंने सोचा कि यह गंदे नल बाइट हो सकता है। बस एक अंतिम स्पष्टीकरण - ReadString से वह अतिरिक्त सफेद जगह क्या हो सकता है? – mark2222
ठीक है, मैं अपने स्वयं के प्रश्न का उत्तर दूंगा - यह \ r तब \ n है: पी मजाकिया कंसोल आउटपुट इसलिए था क्योंकि मैंने \ r बिना \ r बनाया। – mark2222