मैं ग्रोवी के लिए नया हूं और मैं कुछ विशिष्ट कार्य के लिए एक मिनी डीएसएल लिखने की कोशिश कर रहा हूं। इस प्रयोजन के लिए मैं इस नीचे की तरह एक समस्या को हल करने की कोशिश कर रहा है: मैं (parantheses का उपयोग किए बिना) के लिए इस कोड को फोन करके मुद्रित करने के लिए (और/या वापसी) 5 चाहते हैं:ग्रोवी के साथ डीएसएल -> पास पैरामीटर मान
give me 5
मैं उम्मीद कि नीचे इस तरह की परिभाषा काम करेगी:
def give = {clos -> return clos}
def me = {clos -> println clos; return clos}
लेकिन वास्तव में यह नहीं करता है। क्या आप कृपया मुझे "मुझे" 5 "अभिव्यक्ति के साथ मूल्य 5 वापस करने के लिए" देने "और" मुझे "परिभाषित करने में मदद कर सकते हैं, जहां मुझे बंद होना चाहिए, भी मेटा क्लास, संपत्ति इत्यादि दे सकता है।
अग्रिम धन्यवाद! आईवी
धन्यवाद! यही वही है जो मैं ढूंढ रहा था। क्या आप किसी ऐसे स्थान का संदर्भ दे सकते हैं जहां मैं [:] के साथ डीफॉल्ट निर्माण के बारे में अधिक पढ़ सकता हूं? – ivita
@ivita कोई चिंता नहीं! यह परिभाषित किया गया है [यहां] (http://groovy.codehaus.org/groovy-jdk/java/util/Map.html#withDefault%28groovy.lang.Closure%29)।एक बात यह जानना है कि '5' 'यह प्रिंटिंग है वास्तव में एक स्ट्रिंग है, न कि' इंटीजर '। ऐसा इसलिए है क्योंकि यह संपत्ति नाम (स्ट्रिंग) के रूप में '5' प्राप्त करने का प्रयास करता है, इसलिए स्ट्रिंग को भी –
देता है मुझे इसे स्ट्रिंग के रूप में चाहिए :-) धन्यवाद! – ivita