जवाबों:
जैसा कि groovy में EOL मार्कर नहीं है (जैसे ;
) यदि आप ऑपरेटर को निम्न पंक्ति पर रखते हैं तो यह भ्रमित हो जाता है
इसके बजाय यह काम करेगा:
def a = "test" +
"test" +
"test"
जैसा कि ग्रूवी पार्सर निम्नलिखित लाइन पर कुछ उम्मीद करना जानता है
ग्रूवी आपके मूल def
को तीन अलग-अलग बयानों के रूप में देखता है । पहला असाइन करता test
है a
, दूसरा दो "test"
सकारात्मक बनाने की कोशिश करते हैं (और यह वह जगह है जहाँ यह विफल होता है)
साथ new String
निर्माता विधि, ग्रूवी पार्सर, निर्माता में अब भी है (के रूप में ब्रेस अभी तक बंद नहीं किया गया है) तो यह तार्किक एक सिंगल स्टेटमेंट में एक साथ तीन लाइनों में शामिल हो सकते
सच बहु-पंक्ति स्ट्रिंग्स के लिए, आप ट्रिपल उद्धरण का उपयोग कर सकते हैं:
def a = """test
test
test"""
तीन लाइनों पर परीक्षण के साथ एक स्ट्रिंग पैदा करेगा
इसके अलावा, आप इसे द्वारा भोजनालय बना सकते हैं:
def a = """test
|test
|test""".stripMargin()
stripMargin
विधि बाईं ट्रिम जाएगा (करने के लिए और सहित |
प्रत्येक पंक्ति से चार)
stripMargin()
।
|
अतिरिक्त लाइनों पर
"""
स्ट्रिंग्स के अंदर दोहरे उद्धरण चिह्नों का उपयोग कर सकते हैं
stripIndent()
काम करने के लिए कोड को थोड़ा सुधार करने की आवश्यकता होगी ।
इसी तरह stripMargin()
, आप भी पट्टी () की तरह उपयोग कर सकते हैं
def a = """\
test
test
test""".stripIndent()
वजह से
प्रमुख स्थानों की कम से कम संख्या वाली रेखा हटाने के लिए संख्या निर्धारित करती है।
आपको पहले "परीक्षण" को भी इंडेंट करने की आवश्यकता है और इसे सीधे inital के बाद नहीं डालना चाहिए """
(यह \
सुनिश्चित करता है कि मल्टी-लाइन स्ट्रिंग एक नई रेखा के साथ शुरू नहीं होती है)।
आप ग्रूवी को बता सकते हैं कि बयान में कोष्ठक की एक जोड़ी जोड़कर समाप्त होने वाली रेखा का मूल्यांकन करना चाहिए ( ... )
def a = ("test"
+ "test"
+ "test")
एक दूसरा विकल्प बैकस्लैश का उपयोग करना है, \
प्रत्येक पंक्ति के अंत में:
def a = "test" \
+ "test" \
+ "test"
एफडब्ल्यूआईडब्ल्यू, यह पायथन मल्टी-लाइन स्टेटमेंट कैसे काम करता है, इसके समान है।
def a = b + + "/" + c
। इस मामले में दो + प्रतीक स्पष्ट रूप से समस्या है।