2010-02-03 8 views

उत्तर

7

रूबी में एकल उद्धृत तार डबल उद्धृत तारों की तुलना में अधिक 'शाब्दिक' हैं; चर का मूल्यांकन नहीं किया जाता है, और \\ और \' के अपवाद के साथ क्रमशः शाब्दिक बैकस्लैश और एकल उद्धरण शामिल करने के लिए अधिकांश भागने वाले वर्ण काम नहीं करते हैं।

डबल उद्धरण आप क्या चाहते हैं:

file.write "objectclass: groupOfUniqueNames\n" 
+0

तो मैं वास्तव में कभी भी सिंगल कोट स्ट्रिंग का उपयोग क्यों करना चाहूंगा? पात्रों से बचने से बचने के लिए यह सिर्फ छोटा हाथ है? – Zombies

+0

यदि आप इंटरपोलेट नहीं करना चाहते हैं तो यह भी उपयोगी हो सकता है। उदाहरण के लिए: '' इंटरपोलेशन इस तरह दिखता है: # {@ variable} '', जिसे शाब्दिक रूप से मुद्रित किया गया है," @foo का मान # {@ foo} "है, जिसमें' @ foo' का मूल्यांकन किया गया है और सम्मिलित किया गया। –

+0

@ ज़ोंबी एकल उद्धृत स्ट्रिंग को रूबी के पक्ष में कम काम की आवश्यकता होती है। जब आप जानते हैं कि आपको परिवर्तनीय इंटरपोलेशन जैसी चीज़ों की आवश्यकता नहीं है, तो वे उपयोग करने के लिए थोड़ा तेज़ हैं। – meagar

3

आप सिंगल कोट्स का उपयोग कर रहे हैं। एकल उद्धरणों में अनुमत एकमात्र भागने अनुक्रम \\\ और \'' के लिए हैं। डबल कोट्स का उपयोग करें और \n अपेक्षित काम करेगा।

+0

वास्तव में, नहीं भी '' \\ काम करता है। (कौन सा बीटीडब्लू का मतलब है कि आपके पास एक सिंगल उद्धृत स्ट्रिंग नहीं हो सकती है जो बैकस्लाश की विषम संख्या के साथ समाप्त होती है।) –

+0

बेशक यह काम करता है: '' \\ '== "\\" # => true' – sepp2k

+0

@ जोर्ग डब्ल्यू मिट्टाग: ध्यान दें कि '' \\ '। आकार == 1', जो एक विषम संख्या है। – sepp2k

4

केवल दो भागने दृश्यों एक भी उद्धृत स्ट्रिंग में अनुमति दी \' और \\ (एक बैकस्लैश के लिए) (एक भी बोली के लिए) कर रहे हैं। यदि आप अन्य भागने के दृश्यों का उपयोग करना चाहते हैं, जैसे \n (न्यूलाइन के लिए), तो आपको एक डबल उद्धृत स्ट्रिंग का उपयोग करना होगा।

तो, यह काम करेगा:

file.write "objectclass: groupOfUniqueNames\n" 

हालांकि मैं व्यक्तिगत रूप से बस यहाँ puts का प्रयोग करेंगे, जो पहले से ही एक नई पंक्ति कहते हैं:

file.puts 'objectclass: groupOfUniqueNames' 
संबंधित मुद्दे