वर्तमान में, जाने के कार्यक्रमों में एक नई पंक्ति का प्रतिनिधित्व करने, मैं \n
का उपयोग करें। उदाहरण के लिए:गो/गोलांग में एक नई लाइन का प्रतिनिधित्व करने के लिए सबसे पोर्टेबल/क्रॉस-प्लेटफ़ॉर्म तरीका क्या है?
package main
import "fmt"
func main() {
fmt.Printf("%d is %s \n", 'U', string(85))
}
... 85 is U
उपज के बाद एक नई लाइन प्राप्त करेगा।
बहरहाल, यह है कि सभी पार मंच प्रतीत नहीं होता। अन्य भाषाओं को देखते हुए, PHP वैश्विक स्थिरता (PHP_EOL
) के साथ इसका प्रतिनिधित्व करता है। \n
गो/गोलांग में क्रॉस-प्लेटफॉर्म विशिष्ट तरीके से न्यूलाइन का प्रतिनिधित्व करने का सही तरीका है?
यह है करने के लिए "\ n" ठीक है कुछ उत्पादन के लिए सीधे मुद्रित करने के लिए जब यह आउटपुट स्ट्रीम गैर-बाइनरी होती है तो न्यूलाइन अनुवाद की वजह से स्ट्रीम सक्षम होता है। यह सी रनटाइम लाइब्रेरी की एक संपत्ति है जिस पर गो आधारित है: यह प्लेटफ़ॉर्म द्वारा उपयोग किए जाने वाले लाइन अंतराल को स्वचालित रूप से परिवर्तित करता है, इसलिए प्रोग्राम कोड में केवल "\ n" का उपयोग करना सुरक्षित है। यह केवल गैर-बाइनरी धाराओं के लिए काम करता है, और केवल सी रनटाइम का उपयोग करके प्लेटफ़ॉर्म लाइन विभाजक (जैसे स्ट्रिंग के रूप में) प्राप्त करना आसान नहीं होगा। –
@VladimirMatveev, क्या आप निश्चित रूप से सी रनटाइम पर आधारित हैं? ऐसा लगता है कि इसके मानक कंपाइलर सी रनटाइम पर निर्भर नहीं हैं और स्थिर रूप से जुड़ी बाइनरी उत्पन्न करते हैं जो किसी भी चीज़ पर निर्भर नहीं हैं। – kostix
@ कोस्टिक्स, ऐसा लगता है कि आप सही हैं। गो I/O मशीनरी के आंतरिक माध्यमों को देखते हुए सुझाव मिलता है कि वे फ़ाइलों को खोलने के लिए यूनिक्स सिस्टम पर POSIX 'open()' syscall और Windows सिस्टम पर 'CreateFile' का उपयोग कर रहे हैं। 'Os.File # लिखें' को प्रदान किया गया बफर विंडोज़ 'लिखितफाइल' एपीआई फ़ंक्शन पर सीधे अपरिवर्तित भेजा जाता है। विंडोज एपीआई फ़ंक्शन लाइन एंडिंग रूपांतरण नहीं करते हैं, इसलिए स्रोत में केवल एलएफ होने पर आउटपुट में केवल एलएफ होगा। –