2011-03-14 32 views
22

मैट के पोस्ट में drying up cucumber tests, Aslak suggests निम्नलिखित में।रूबी में% {} क्या करता है?

जब मैं उद्धरण के बहुत सारे है, मैं इस पसंद करते हैं:

को देखते हुए% {मैं "उपयोगकर्ता नाम" में "# {User.first.username}" दर्ज}

क्या है %{CONTENT} निर्माण कहा जाता है? क्या कोई इसे कुछ दस्तावेज में संदर्भित करेगा? मुझे यकीन नहीं है कि इसे देखने के बारे में कैसे जाना है।

%Q के बारे में भी सामान है। क्या यह सिर्फ % के बराबर है? घुंघराले ब्रेसिज़ का क्या? क्या आप वर्ग ब्रेसिज़ का उपयोग कर सकते हैं? क्या वे अलग-अलग काम करते हैं?

अंत में, #{<ruby stuff to be evaluated>} निर्माण क्या कहा जाता है? क्या दस्तावेज में कहीं भी इसका कोई संदर्भ है?

  • #{} "स्ट्रिंग प्रक्षेप" कहा जाता है:

  • उत्तर

    14
    1. "प्रतिशत शाब्दिक" आम तौर पर कुछ जानकारी गूगल के लिए एक अच्छा तरीका है।

    +0

    उन में से किसी '% के साथ बताते हैं, तो {' 'यह देखते हुए% में {मैं दर्ज करें" # {User.first.username} "" उपयोगकर्ता नाम "में}' मैं नहीं कर सके है ' इसे नहीं मिला। क्या '% {' एक टाइपो या ककड़ी डीएसएल का हिस्सा है? –

    +2

    यह एक डबल उद्धृत स्ट्रिंग के बराबर है, अपवाद के साथ कि आपको अंदर डबल कोट्स से बचने की आवश्यकता नहीं है (लगता है कि "दिया गया" मैं \ "# {User.first.username} \" \ "उपयोगकर्ता नाम \" में दर्ज करता हूं " –

    +1

    प्रतिशत शाब्दिक के बारे में जानना अच्छा है, उद्घाटन और समापन चरित्र लगभग कुछ भी हो सकता है। इसलिए '% {कुछ पाठ}', '% [कुछ पाठ]' लेकिन '% # कुछ पाठ #' और '% 'कुछ पाठ 'और यहां तक ​​कि '%% कुछ पाठ%' –

    8

    #{1+1}String Interpolation कहा जाता है।

    मैं, और विकीबुक्स, % सामान को केवल "% नोटेशन" के रूप में संदर्भित करता है। Reference here% नोटेशन किसी भी delimiter लेता है, जब तक यह गैर अल्फान्यूमेरिक है। यह संशोधक भी ले सकता है (जैसे कि नियमित अभिव्यक्ति कैसे विकल्प लेते हैं), जिनमें से एक दिलचस्प रूप से पर्याप्त है, यह है कि आप #{} -स्टाइल स्ट्रिंग इंटरपोलेशन (यह डिफ़ॉल्ट रूप से भी सक्षम है) को अनुमति देगा या नहीं।

    % तब कुछ विशेष चीजें करता है, जो नोटेशन को कुछ अलग करता है, अगर शुरुआती लोगों के लिए थोड़ा सा गूढ़ता है। उदाहरण के लिए %w{hello world} एक सरणी ['hello','world'] देता है। %s{hello} एक प्रतीक :hello देता है।

    5

    उपरोक्त में से कोई भी जवाब वास्तव में प्रश्न का उत्तर नहीं देता है।

    यह प्रतिशत संकेत संकेत है। प्रतिशत संकेत इंगित करता है कि अगला चरित्र एक शाब्दिक डिलीमीटर है, और आप किसी भी (गैर अल्फान्यूमेरिक) का उपयोग कर सकते हैं जिसे आप चाहते हैं। उदाहरण के लिए:

    %{foo='bar with embedded "baz"'} 
    

    रिटर्न शाब्दिक स्ट्रिंग: एम्बेडेड "baz साथ foo = 'बार

    %{stuff} 
    %[stuff] 
    %?stuff? 
    

    आदि यह आपको भागने के बिना डबल कोट, एकल उद्धरण आदि स्ट्रिंग में डाल करने के लिए अनुमति देता है "

    स्ट्रिंग को कैसे विभाजित किया जाता है यह निर्धारित करने के लिए प्रतिशत चिह्न का एक अक्षर संशोधक द्वारा अनुसरण किया जा सकता है।

    विवरण यहां हैं: Wikibooks

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