2015-10-26 9 views
9

मैं रूबी सिंटैक्स और कोडिंग शैलियों से परिचित होने की कोशिश कर रहा हूं (मैं एक नौसिखिया हूं)। मैं एक कोड में आया जो <<- का उपयोग करता है, रूबी में इसका क्या अर्थ है? कोडशून्य से कम डबल "<< -" संकेत रूबी में कुछ भी मतलब है?

def expectation_message(expectation) 
    <<-FE 
     #{expectation.message} 
     #{expectation.stack} 
    FE 
    end 

यह पूरे कोड का केवल एक भाग है। किसी भी सहायता की सराहना की जाएगी।

+1

यह गहरे लाल रंग का हियरडॉक वाक्य-विन्यास है। आप इसके बारे में यहां पढ़ सकते हैं: http://blog.jayfields.com/2006/12/ruby-multiline-strings-here-doc-or.html –

उत्तर

6

वहाँ रूबी में बहु लाइन स्ट्रिंग को परिभाषित करने के विभिन्न तरीके हैं। यह उनमें से एक है।

> name = 'John' 
> city = 'Ny' 
> multiline_string = <<-EOS 
> This is the first line 
> My name is #{name}. 
> My city is #{city} city. 
> EOS 
=> "This is the first line\nMy name is John.\nMy city is Ny city.\n" 
> 

ऊपर के उदाहरण में EOS सिर्फ एक सम्मेलन, आप अपनी पसंद के किसी भी स्ट्रिंग और उसके केस संवेदी का उपयोग कर सकते है। आम तौर पर EOS का अर्थ है End Of String

इसके अलावा, - (डैश) की आवश्यकता नहीं है। हालांकि, आपको "यहां दस्तावेज़ का अंत" डिलीमीटर प्रस्तुत करने की अनुमति देता है। वाक्यों को समझने के लिए निम्न उदाहरण देखें।

2.2.1 :014 > <<EOF 
2.2.1 :015"> My first line without dash 
2.2.1 :016">   EOF 
2.2.1 :017"> EOF 
=> "My first line without dash\n  EOF\n" 


2.2.1 :018 > <<-EOF 
2.2.1 :019"> My first line with dash. This even supports spaces before the ending delimiter. 
2.2.1 :020"> EOF 
=> "My first line with dash. This even supports spaces before the ending delimiter.\n" 
2.2.1 :021 > 

अधिक जानकारी के लिए देख https://cbabhusal.wordpress.com/2015/10/06/ruby-multiline-string-definition/

+1

ओपी के मामले में डैश _is_ आवश्यक (इंडेंटेड एंड मार्कर को अनुमति देने के लिए) –

+2

"वे सभी इंटरपोलेशन का समर्थन करते हैं" - सच नहीं। एकल उद्धृत तार इंटरपोलेशन की अनुमति नहीं देते हैं। –

+0

ठीक है सुनिश्चित करें कि आप पूरा होने पर यहां दिए गए उत्तरों में से एक को चेकमार्क करें। :) – illusionist

4

<<FE (आप किसी अन्य शब्द के साथ एफई को प्रतिस्थापित कर सकते हैं) बहु-पंक्ति तार बनाने के लिए उपयोग किया जाता है। <<-FE का उपयोग एंड मार्कर को हटाए जाने से पहले व्हाइटस्पेस के साथ बहु-पंक्ति तार बनाने के लिए किया जाता है।

More info

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