हेरेडोक क्या है?
एक हेरेडोक एक मल्टीलाइन स्ट्रिंग को परिभाषित करने का एक तरीका है, जबकि मूल इंडेंटेशन और फ़ॉर्मेटिंग को बनाए रखना ।
इसका उपयोग SQL या HTML जैसे कोड के स्निपेट को एम्बेड करने के लिए किया जाता है।
यहां एक उदाहरण दिया गया है :
query = <<-SQL SELECT * FROM food WHERE healthy = true SQL
आप इस सिंटैक्स का उपयोग एक हेरेडोक को परिभाषित करने के लिए . करते हैं रूबी में।
आप प्रतीक <<-
. से शुरू करते हैं , फिर एक शब्द जो इस हेरेडोक के नाम का प्रतिनिधित्व करता है, फिर हेरेडोक सामग्री, फिर आप हेरेडोक को उस शब्द के साथ अपनी लाइन पर बंद कर देते हैं।
ऐसा करने का दूसरा तरीका %Q का उपयोग करना है :
query = %Q( Article about heredocs )
आपको इस स्ट्रिंग के प्रारंभ और अंत में एक अतिरिक्त नई पंक्ति मिलेगी। एक हेरेडोक (या strip
. को कॉल करना विधि) इसे हल करती है।
यहां एक रूबी हेरेडोक बिना नई लाइन के पीछे है :
query = <<-HTML.chomp Article about heredocs HTML
रूबी हेरेडोक इंटरपोलेशन
यदि आप सोच रहे हैं कि क्या आप हेरेडोक के साथ स्ट्रिंग इंटरपोलेशन का उपयोग कर सकते हैं...
जवाब हां है!
उदाहरण :
type = "healthy" table = "food" query = <<-SQL SELECT * FROM #{table} WHERE #{type} = true SQL
आप सिंगल कोट्स के साथ हेरेडोक नाम के आस-पास इंटरपोलेशन को अक्षम कर सकते हैं।
इसे पसंद करें :
doc = <<-'TIME' Current time is #{Time.now} TIME. है
रूबी स्क्विगली हेरेडोक
आप प्रत्येक पंक्ति की शुरुआत में अतिरिक्त इंडेंटेशन कैसे हटा सकते हैं?
स्क्विगली हेरेडोक . यही है के लिए है।
रूबी 2.3 में पेश किया गया, स्क्विगली हेरेडोक आपके लिए अतिरिक्त इंडेंटेशन को हटा देता है।
उदाहरण :
page = <<-HTML Heredocs are cool & useful HTML # " Heredocs are cool & useful\n" page = <<~HTML Heredocs are cool & useful HTML # "Heredocs are cool & useful\n" page = <<~HTML.strip Heredocs are cool & useful HTML # "Heredocs are cool & useful"
अब आप पठनीयता के लिए अतिरिक्त स्थान रख सकते हैं।
उन्हें वास्तविक स्ट्रिंग में छोड़ते समय!
सारांश
आपने अपने कोड में मल्टीलाइन स्ट्रिंग्स को एम्बेड करने के लिए रूबी में हेरेडोक्स का उपयोग करना सीख लिया है। यह आपके कोड के लिए परीक्षण लिखने या किसी फ़ाइल को पढ़े बिना डेटा के छोटे-छोटे टुकड़े उपलब्ध कराने के लिए उपयोगी हो सकता है।
पढ़ने के लिए धन्यवाद!