2012-10-31 15 views
11

तो मैं इस रूबी ट्यूटोरियल का अनुसरण कर रहा हूं: Learn Ruby the Hard Way.रुबी - सिंगल और डबल कोट्स के बीच क्या अंतर है?

अभ्यास 16 (ऊपर लिंक) में, आप एक स्क्रिप्ट लिखते हैं जो फाइल को लाइन लिखती है। प्रासंगिक कोड है:

print "line 1: "; line1 = STDIN.gets.chomp() 
print "line 2: "; line2 = STDIN.gets.chomp() 
print "line 3: "; line3 = STDIN.gets.chomp() 

puts "I'm going to write these to the file." 

target.write(line1) 
target.write("\n") 
target.write(line2) 
target.write("\n") 
target.write(line3) 
target.write("\n") 

हालांकि, आलसी बम कि मैं कर रहा हूँ जा रहा है, मैं मूल रूप से उदाहरण में पिछले छह लाइनों में एकल उद्धरण का उपयोग कर टाइप किया, डबल कोट के बजाय ट्यूटोरियल आप उपयोग करना बताता है।

इसका फ़ाइल पर असर पड़ा। जब मैं एकल उद्धरण का इस्तेमाल किया, फ़ाइल इस तरह देखा:

this is line 1 
this is line 2 
this is line 3 

कोई मुझे बता सकते हैं वास्तव में ऐसा क्यों है:

this is line 1\nthis is line 2\nthis is line 3 

डबल उद्धरण के लिए उन उद्धरण स्विच करने के बाद, फ़ाइल अपेक्षानुसार देखा? एकल-उद्धृत तारों को केवल \n या \t जैसे बचने वाले वर्णों को अनदेखा करें?

+0

हां, आप सही हैं –

+0

* वास्तव में * आलसी लोग कोड टाइप नहीं करते हैं, वे कॉपी/पेस्ट करते हैं। :) –

+1

मुझे हैरान है कि एक ट्यूटोरियल जिसमें आपने फाइलें खोलने और उन्हें लिखने के लिए कुछ समय नहीं लिया होगा, यह समझाने के लिए कि एक स्ट्रिंग कैसे काम करती है। –

उत्तर

16

हां, एकल-उद्धृत तार ASCII भागने कोड को संसाधित नहीं करते हैं और वे स्ट्रिंग इंटरपोलेशन नहीं करते हैं।

name = 'Joe' 
greeting = 'Hello, #{name}' # this won't produce "Hello, Joe" 
संबंधित मुद्दे

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