Groovy शुरुआती लोगों के लिए स्क्रिप्ट ट्यूटोरियल

⚡ स्मार्ट सारांश

Groovy स्क्रिप्ट एक ऑब्जेक्ट-ओरिएंटेड भाषा है। Java यह एक ऐसा प्लेटफॉर्म है जो JVM बाइटकोड में कंपाइल होता है। यह डायनामिक टाइप जोड़ता है।pingक्लोजर और संक्षिप्त सिंटैक्स Javaऔर यह शक्ति प्रदान करता है Jenkins पाइपलाइन, Gradle निर्माण, और SoapUI दावे.

  • 🧩 Java संगत: सबसे मान्य Java कोड बिना किसी बदलाव के संकलित हो जाता है Groovyइसलिए सीखने की लागत बहुत कम रहती है।
  • Less मानक प्रारूप: एक ही println लाइन क्लास, मेन मेथड और System.out कॉल को रिप्लेस कर देती है। Java मांगों को।
  • 🔀 गतिशील टीping: def कीवर्ड एक वेरिएबल को पहले एक इंटीजर और फिर रनटाइम पर एक स्ट्रिंग रखने की अनुमति देता है।
  • 🔁 कॉम्पैक्ट लूप: upto, times और step विधियाँ एक ही पंक्ति में विस्तृत C-शैली के for लूप को प्रतिस्थापित कर देती हैं।
  • 📦 देशी संग्रह: सूचियों और मानचित्रों में शाब्दिक सिंटैक्स के साथ-साथ पॉप, कीसेट और सॉर्ट जैसे सहायक फ़ंक्शन भी होते हैं।
  • 🧠 बंद: कोड के ब्लॉक ऑब्जेक्ट के रूप में कार्य करते हैं, पैरामीटर स्वीकार करते हैं, मान लौटाते हैं और अन्य क्लोजर के भीतर नेस्टेड होते हैं।
  • ⚙️ तीन उपकरण: groovysh एक शेल प्रदान करता है, groovyConsole एक GUI प्रदान करता है, और groovy सीधे स्क्रिप्ट फ़ाइलों को चलाता है।

Groovy शुरुआती लोगों के लिए स्क्रिप्ट ट्यूटोरियल

क्या है एक Groovy लिखी हुई कहानी?

अपाचे Groovy यह ऑब्जेक्ट ओरिएंटेड है, Java सिंटैक्स-संगत प्रोग्रामिंग भाषा जो इसके लिए बनाई गई है Java प्लेटफ़ॉर्म। इस गतिशील भाषा में कई ऐसी विशेषताएं हैं जो इसके समान हैं। Pythonरूबी, स्मॉलटॉक और पर्ल। Groovy स्रोत कोड को संकलित किया जाता है Java बाइटकोड, इसलिए यह किसी भी प्लेटफ़ॉर्म पर चलता है जहाँ एक Java वर्चुअल मशीन स्थापित हो गई है। Groovy यह पर्दे के पीछे भी बहुत सारा काम करता है, जिससे यह सामान्य से कहीं अधिक चुस्त और गतिशील महसूस होता है। Java.

A Groovy लिपि बस एक है .groovy ऐसी फ़ाइल जिसमें ऐसे कथन हों जो Groovy इसे चलाने से पहले एक जनरेटेड क्लास में लपेटा जाता है। इसीलिए आप बिना क्लास या कोड लिखे एक लाइन की फ़ाइल को निष्पादित कर सकते हैं। main विधि. Groovy इसलिए इसे स्क्रिप्टिंग भाषा के रूप में इस्तेमाल किया जा सकता है। Java प्लेटफ़ॉर्म, साथ ही उद्यम स्तर की क्षमताओं की पेशकश भी करता है। Javaइसमें डीएसएल सपोर्ट, क्लोजर और वैकल्पिक डायनेमिक टाइपिंग जैसी उत्पादकता सुविधाएँ जोड़ी गई हैं।pingकुछ अन्य भाषाओं के विपरीत, इसे एक सहायक के रूप में डिज़ाइन किया गया है। Javaयह उसका विकल्प नहीं है।

💡टिप: Groovy 5.0 वर्तमान स्थिर रिलीज़ लाइन है और यह JDK 11 और उससे ऊपर के संस्करणों को लक्षित करती है। Groovy 4.0 जेडीके 8 परियोजनाओं के लिए उपलब्ध रहेगा, और Groovy जेडीके 17 के लिए 6.0 अभी भी अल्फा चरण में है। कोई भी संस्करण चुनने से पहले हमेशा आधिकारिक डाउनलोड पृष्ठ पर सिस्टम आवश्यकताओं की तालिका की जांच करें।

क्यों Groovy?

यहां कुछ प्रमुख कारण दिए गए हैं कि आपको इसका उपयोग और सीखना क्यों चाहिए। Groovy:

  • Groovy यह एक लचीली और गतिशील भाषा है।
  • यह सभी मौजूदा प्रणालियों के साथ सहजता से एकीकृत हो जाता है। Java वस्तुएं और पुस्तकालय।
  • यह आसान और स्वाभाविक लगता है Java डेवलपर्स।
  • यह कोड समकक्ष कोड की तुलना में अधिक संक्षिप्त और अधिक अर्थपूर्ण है। Java कोड।
  • आप इसे अंदर अपनी इच्छानुसार कम या ज्यादा इस्तेमाल कर सकते हैं। Java अनुप्रयोगों.
  • यह मानक पर चलता है Java आभासी मशीनइसलिए अलग से रनटाइम की आवश्यकता नहीं है।

Groovy इतिहास

  • 2003: जेम्स एस द्वारा आरंभ किया गयाtracहान और बॉब मैकWhirटेर।
  • 2004: को प्रस्तुत किया गया Java सामुदायिक प्रक्रिया को जेएसआर 241 के रूप में प्रस्तुत किया गया था, जिसे बाद में वापस ले लिया गया था।
  • 2005: वापस लाया गया tracजेरेमी रेनर और गुइलौम लाफोर्ज द्वारा लिखित k.
  • 2007: Groovy 1.0 जारी किये गये.
  • 2012: Groovy 2.0 जारी किये गये.
  • 2014: Groovy 2.3 को JDK 8 के लिए आधिकारिक समर्थन के साथ जारी किया गया।
  • 2015: Groovy अपाचे सॉफ्टवेयर में यह एक शीर्ष स्तरीय परियोजना बन गई। Foundation.
  • 2022: Groovy 4.0 रिलीज़ हो गया है, और मेवन कोऑर्डिनेट्स को स्थानांतरित कर दिया गया है। org.apache.groovy.
  • 2025: Groovy 5.0 संस्करण JDK 11 और उससे ऊपर के संस्करणों के लिए जारी किया गया है।

की सुविधाएं Groovy

  • लिस्ट, मैप, रेंज और रेगुलर एक्सप्रेशन लिटरल।
  • मल्टीमेथड्स (रनटाइम मेथड डिस्पैच) और मेटाप्रोग्रामिंग।
  • Groovy क्लास और स्क्रिप्ट आमतौर पर इसमें संग्रहीत होते हैं .groovy फाइलें.
  • स्क्रिप्ट में शामिल हैं Groovy बिना किसी वर्ग घोषणा के कथन.
  • स्क्रिप्ट में क्लास परिभाषाओं के बाहर विधि परिभाषाएँ भी हो सकती हैं।
  • Groovy कोड को संकलित किया जा सकता है और पारंपरिक प्रणाली के साथ पूरी तरह से एकीकृत किया जा सकता है। Java आवेदन.
  • मानचित्रों, सूचियों और नियमित अभिव्यक्तियों के लिए भाषा-स्तर का समर्थन।
  • बंद होने के लिए समर्थन, गतिशील टीpingऔर मेटा-ऑब्जेक्ट प्रोटोकॉल।
  • स्थैतिक और गतिशील दोनों प्रकार के लिए समर्थनpingसाथ ही ऑपरेटर पर काम का बोझ भी।
  • वैकल्पिक स्थिर प्रकार की जाँच के माध्यम से @TypeChecked और @CompileStatic टिप्पणियाँ.

कैसे स्थापित करने के लिए Groovy

चरण 1) सुनिश्चित करें कि आपके पास है Java installed.

चरण 2) https://groovy.apache.org/download.html और क्लिक करें Windows इंस्टालर लिंक।

Groovy इंस्टॉलर लिंक के साथ डाउनलोड पेज

नोट: आप यह भी स्थापित कर सकते हैं Groovy बाइनरी ज़िप फ़ाइल से, SDKMAN!, Homebrew, Scoop, या Chocolatey जैसे पैकेज मैनेजर के माध्यम से, या आपके प्लगइन के रूप में। Java आईडीई. इस में Groovy हम इस प्रक्रिया का पालन करेंगे। Windows संस्थापक।

चरण 3) डाउनलोड किए गए इंस्टॉलर को लॉन्च करें। भाषा चुनें और ओके पर क्लिक करें।

Groovy इंस्टॉलर भाषा चयन संवाद

चरण 4) स्वागत स्क्रीन पर, NEXT पर क्लिक करें।

Groovy इंस्टॉलर स्वागत स्क्रीन

चरण 5) लाइसेंस की शर्तों से सहमत हों।

Groovy इंस्टॉलर लाइसेंस समझौता स्क्रीन

चरण 6) आप जिन घटकों को स्थापित करना चाहते हैं उन्हें चुनें और आगे बढ़ें पर क्लिक करें।

Groovy इंस्टॉलर घटक चयन स्क्रीन

चरण 7) स्थापना निर्देशिका का चयन करें और अगला पर क्लिक करें।

Groovy इंस्टॉलर इंस्टॉलेशन डायरेक्टरी स्क्रीन

चरण 8) स्टार्ट मेनू फोल्डर चुनें और नेक्स्ट पर क्लिक करें।

Groovy इंस्टॉलर प्रारंभ मेनू फ़ोल्डर स्क्रीन

चरण 9) एक बार इंस्टॉलेशन पूरा हो जाने पर, पाथ को उनके डिफ़ॉल्ट मानों पर छोड़ दें और NEXT पर क्लिक करें।

Groovy इंस्टॉलर पर्यावरण पथ स्क्रीन

चरण 10) फ़ाइल एसोसिएशन विकल्पों की पुष्टि करें और NEXT पर क्लिक करें।

Groovy इंस्टॉलर फ़ाइल एसोसिएशन स्क्रीन

चरण 11) स्टार्ट मेनू में, खोजें Groovy स्थापना की पुष्टि करने के लिए कंसोल का उपयोग करें।

स्टार्ट मेनू खोज परिणाम दिखा रहा है Groovy कंसोल शॉर्टकट

⚠️ चेतावनी: RSI Windows यह इंस्टॉलर समुदाय द्वारा योगदान दिया गया एक उत्पाद है, न कि कोई आधिकारिक अपाचे रिलीज़। यदि आपके संगठन को हस्ताक्षरित अपाचे डाउनलोड की आवश्यकता है, तो बाइनरी ज़िप वितरण का उपयोग करें और इसकी पुष्टि करें। .asc हस्ताक्षर और .sha256 इसके बजाय चेकसम का उपयोग करें।

Groovy नमस्ते दुनिया उदाहरण

मान लीजिए कि आप साधारण स्ट्रिंग "हेलो वर्ल्ड" को प्रिंट करना चाहते हैं। Javaकोड कुछ इस तरह दिखेगा।

public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

आउटपुट:

Hello World

ऊपर दिया गया कोड दोनों में मान्य है। Java और Groovy, क्योंकि Groovy लगभग सभी को स्वीकार करता है Java वाक्य संरचना। इसका लाभ यह है कि Groovy इसका फायदा यह है कि आप क्लास डिक्लेरेशन, पब्लिक मेथड और फुली क्वालिफाइड प्रिंट कॉल को हटाकर एक ही लाइन में वही आउटपुट प्राप्त कर सकते हैं।

println "Hello World"

आउटपुट:

Hello World
  • अर्धविराम की कोई आवश्यकता नहीं है।
  • किसी कक्षा या प्रशिक्षण की आवश्यकता नहीं है। main विधि.
  • System.out.println को कम कर दिया गया है println.

Groovy चर

In Javaस्थैतिक बंधन अनिवार्य है, जिसका अर्थ है कि चर के प्रकार को पहले से घोषित करना होगा।

public class Demo {
    public static void main(String[] args) {
        int x = 104;
        System.out.println(x);
        //x = "Guru99";
    }
}

आउटपुट:

104

ऊपर दिए गए उदाहरण में, कीवर्ड का उपयोग करके वेरिएबल का प्रकार पहले से ही घोषित किया गया है। intयदि आप किसी फ्लोटिंग पॉइंट संख्या को घोषित करते हैं, तो आप कीवर्ड का उपयोग करेंगे। float or double.

यदि आप किसी स्ट्रिंग मान को असाइन करने का प्रयास करते हैं int (लाइन 5 को अनकमेंट करें), आपको निम्नलिखित कंपाइल त्रुटि मिलेगी।

Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";

इसके विपरीत, Groovy गतिशील टाइप का समर्थन करता हैpingचरों को कीवर्ड का उपयोग करके परिभाषित किया जाता है। defऔर इसके लिए वेरिएबल के प्रकार को पहले से घोषित करने की आवश्यकता नहीं है। रनटाइम वेरिएबल के प्रकार का पता लगा लेता है, और आप बाद में उस प्रकार को बदल भी सकते हैं।

def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()

आउटपुट:

class java.lang.Integer
class java.lang.String

In Groovy आप मल्टीलाइन स्ट्रिंग भी बना सकते हैं। बस यह सुनिश्चित करें कि आप स्ट्रिंग को ट्रिपल कोटेशन मार्क में बंद करें।

def x = """Groovy
at
Guru99"""
println x

आउटपुट:

Groovy
at
Guru99

नोट: आप अभी भी स्पष्ट प्रकारों का उपयोग कर सकते हैं जैसे कि byte, short, int, तथा long in Groovyलेकिन एक बार जब आप टाइप को स्पष्ट रूप से घोषित कर देते हैं, तो आप इसे गतिशील रूप से नहीं बदल सकते।

int x = 104
println x
x = "Guru99"

आउटपुट:

104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
    at jdoodle.run(jdoodle.groovy:3)
Command exited with non-zero status 1

Groovy Operaमरोड़

ऑपरेटर एक ऐसा प्रतीक है जो कंपाइलर को एक विशिष्ट गणितीय या तार्किक हेरफेर करने के लिए कहता है। Groovy यह ऑपरेटरों के निम्नलिखित पांच परिवारों का समर्थन करता है।

  • अंकगणितीय आपरेटर: जोड़ें (+), घटाएँtract (-), गुणा (*), भाग (/), मापांक (%), वृद्धि (++), कमी (–).
  • संबंधपरक संकारक: बराबर (==), बराबर नहीं (!=), से कम (<), से कम या बराबर (<=), से अधिक (>), से अधिक या बराबर (>=)।
  • लॉजिकल ऑपरेटर्स: और (&&), या (||), नहीं (!).
  • बिटवाइज़ ऑपरेटर: और (&), या (|), अनन्य-या (^), पूरक (~).
  • असाइनमेंट ऑपरेटर: (=) और यौगिक रूपों (+=), (-=), (*=), (/=), (%=) को असाइन करें।

Groovy कुछ ऑपरेटर जोड़ता है जो Java इसमें यह सुविधा नहीं है, और वे बहुत सारे नल-चेक बॉयलरप्लेट को हटा देते हैं।

Operaटो विवरण
?. सुरक्षित नेविगेशन। बाएँ पक्ष के मान null होने पर NullPointerException उत्पन्न करने के बजाय null लौटाता है।
?: एल्विस ऑपरेटर। यदि सत्य कथन है तो बायां पक्ष लौटाता है, अन्यथा दायां पक्ष लौटाता है।
<=> अंतरिक्ष यान संचालक। तुलना करने के लिए प्रतिनिधि और सॉर्ट क्लोज़र के अंदर उपयोगी है।
==~ रेगुलर एक्सप्रेशन से मिलान। यह केवल तभी सही मान लौटाता है जब पूरी स्ट्रिंग पैटर्न से मेल खाती है।

Groovy लूप्स

In Javaआप काउंटिंग लूप को इस प्रकार परिभाषित करेंगे।

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x++) {
            System.out.println(x);
        }
    }
}

आउटपुट:

0
1
2
3
4
5

आप समान आउटपुट प्राप्त कर सकते हैं Groovy साथ upto वह विधि, जिसमें दोनों सीमाएं शामिल हैं।

0.upto(5) { println "$it" }

आउटपुट:

0
1
2
3
4
5

यहाँ it यह क्लोज़र का अंतर्निहित पैरामीटर है, और इसमें वर्तमान पुनरावृति का मान होता है। निम्नलिखित कोड पर विचार करें।

2.upto(4) { println "$it" }

आउटपुट:

2
3
4

तुम भी उपयोग कर सकते हैं times यह विधि हमेशा 0 से शुरू होती है और जिस संख्या पर आप इसे कॉल करते हैं उससे एक कम पर रुक जाती है, इसलिए 0 से 5 तक प्रिंट करने के लिए आपको 6 की आवश्यकता होगी।

6.times { println "$it" }

आउटपुट:

0
1
2
3
4
5

अब मान लीजिए कि आप 0, 2 और 4 को प्रिंट करना चाहते हैं। Java पाश के लिए.

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x=x+2) {
            System.out.println(x);
        }
    }
}

आउटपुट:

0
2
4

आप का उपयोग कर सकते हैं step समान परिणाम प्राप्त करने के लिए विधि। दूसरा तर्क वृद्धि है, और पहला तर्क एक अनन्य ऊपरी सीमा है।

0.step(5, 2) { println "$it" }

आउटपुट:

0
2
4

Groovy निर्णय

Groovy पुनः उपयोग करता है Java सशर्त कथनों को जोड़ता है और कहीं अधिक लचीलापन प्रदान करता है। switchनीचे दी गई तालिका विकल्पों का सारांश प्रस्तुत करती है।

कथन विवरण
अगर बयान जैसे की Javaजब शर्त सत्य होती है, तो if स्टेटमेंट का मुख्य भाग निष्पादित होता है।
यदि/अन्यथा कथन if स्टेटमेंट में दी गई शर्त का मूल्यांकन सबसे पहले किया जाता है। यदि शर्त सत्य है, तो if ब्लॉक के स्टेटमेंट चलते हैं और else ब्लॉक को छोड़ दिया जाता है। यदि शर्त असत्य है, तो else ब्लॉक के स्टेटमेंट चलते हैं।
नेस्टेड इफ स्टेटमेंट इसका उपयोग तब किया जाता है जब आपको if ब्लॉक के अंदर किसी अतिरिक्त शर्त का परीक्षण करने की आवश्यकता होती है।
स्विच कथन कई शर्तों के होने पर नेस्टेड इफ-एल्स श्रृंखला अपठनीय हो जाती है। स्विच स्टेटमेंट उसी लॉजिक को पढ़ने में आसान बना देता है। Groovyकेस लेबल एक मान, एक वर्ग, एक श्रेणी, एक नियमित अभिव्यक्ति या एक क्लोजर हो सकता है।
नेस्टेड स्विच स्टेटमेंट Groovy यह एक स्विच स्टेटमेंट को दूसरे के अंदर रखने की भी अनुमति देता है।

Groovy सूची

सूची संरचना आपको डेटा आइटमों के संग्रह को संग्रहीत करने की अनुमति देती है। Groovyएक लिस्ट में ऑब्जेक्ट रेफरेंस का एक क्रम होता है और उस क्रम में प्रत्येक एलिमेंट की स्थिति को सुरक्षित रखता है। लिस्ट लिटरल को कॉमा से अलग किए गए और स्क्वायर ब्रैकेट में बंद ऑब्जेक्ट्स की एक श्रृंखला के रूप में लिखा जाता है।

के उदाहरण Groovy सूचियां:

  • स्ट्रिंग की एक सूची: ['Angular', 'Nodejs']
  • मिश्रित ऑब्जेक्ट संदर्भों की सूची: ['Groovy', 2, 4, 2.6]
  • पूर्णांक मानों की एक सूची: [16, 17, 18, 19]
  • एक खाली सूची: []

निम्नलिखित सूची विधियाँ उपलब्ध हैं Groovy.

विधि विवरण
(जोड़ें) यह फ़ंक्शन सूची के अंत में एक नया मान जोड़ता है।
रोकना() यदि सूची में कोई निश्चित मान मौजूद है तो true लौटाता है।
प्राप्त() दी गई स्थिति पर स्थित तत्व को लौटाता है।
खाली है() यदि सूची में कोई तत्व नहीं है तो true लौटाता है।
माइनस() यह मूल सूची के तत्वों से बनी एक नई सूची बनाता है, जिसमें दिए गए संग्रह में निर्दिष्ट तत्वों को शामिल नहीं किया जाता है।
प्लस() यह मूल सूची के तत्वों के साथ-साथ दिए गए संग्रह के तत्वों से मिलकर एक नई सूची बनाता है।
पॉप() यह सूची से अंतिम आइटम को हटाता है और उसे वापस लौटाता है।
हटाना() दिए गए स्थान पर मौजूद तत्व को हटाता है।
उलटना () एक नई सूची बनाता है जो मूल सूची के तत्वों को उलट देती है।
आकार () यह सूची में मौजूद तत्वों की संख्या लौटाता है।
क्रमबद्ध करें () यह सूची की क्रमबद्ध प्रतिलिपि लौटाता है।

निम्नलिखित को धयान मे रखते हुए Groovy स्क्रिप्ट का उदाहरण।

def y = ["Guru99", "is", "Best", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())

आउटपुट:

[Guru99, is, Best, for, Groovy]
true
Best
Learning

पहली पंक्ति मूल पांच-तत्वों वाली सूची को प्रिंट करती है, क्योंकि add() अभी तक नहीं चला है। get(2) "सर्वश्रेष्ठ" लौटाता है क्योंकि Groovy सूचियाँ शून्य-अनुक्रमित होती हैं, और pop() यह "लर्निंग" लौटाता है क्योंकि वह आइटम सबसे अंत में जोड़ा गया था।

Groovy मैप्स

A Groovy मैप कुंजी-मान युग्मों का एक संग्रह है। सरल पहचानकर्ताओं के रूप में कुंजियों को उद्धरण चिह्नों की आवश्यकता नहीं होती है, जिससे मैप लिटरल बहुत संक्षिप्त रहते हैं।

के उदाहरण Groovy मानचित्र:

  • [tutorial: 'Java', language: 'Groovy'] यह दो कुंजी-मान युग्मों का संग्रह है।
  • [:] यह एक खाली मानचित्र को दर्शाता है।

यहां उपलब्ध मानचित्र विधियों की सूची दी गई है। Groovy.

विधि विवरण
सम्‍मिलितकुंजी() यह जांच करता है कि मानचित्र में दी गई कुंजी मौजूद है या नहीं।
प्राप्त() यह मैप में कुंजी को खोजता है और मिलान मान लौटाता है। यदि कोई प्रविष्टि नहीं मिलती है, तो यह null लौटाता है।
कुंजीसेट() मैप में मौजूद कुंजियों का सेट लौटाता है।
रखना() दिए गए मान को दी गई कुंजी से जोड़ता है। यदि मैप में पहले से ही कोई मैप मौजूद हैping उस कुंजी के लिए, पुराने मान को बदल दिया जाता है।
आकार () कुंजी-मान मानचित्रों की संख्या लौटाता हैpings.
मान () यह मानों का एक संग्रह दृश्य लौटाता है।

Groovy उदाहरण:

def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")

आउटपुट:

Jen

Groovy बंद

A Groovy क्लोज़र एक ऑब्जेक्ट के रूप में रैप किया गया कोड का ब्लॉक है। यह एक मेथड या फ़ंक्शन की तरह व्यवहार करता है, लेकिन इसे एक वेरिएबल में स्टोर किया जा सकता है और किसी अन्य वैल्यू की तरह पास किया जा सकता है।

एक सरल क्लोजर का उदाहरण:

def myClosure = {
    println "My First Closure"
}
myClosure()

आउटपुट:

My First Closure

क्लोज़र पैरामीटर स्वीकार कर सकता है। पहचानकर्ताओं की सूची अल्पविराम से अलग की जाती है, और तीर (->) पैरामीटर सूची के अंत को दर्शाता है।

def myClosure = {
    a, b, c ->
    y = a + b + c
    println y
}
myClosure(1, 2, 3)

आउटपुट:

6

क्लोज़र एक मान भी लौटा सकता है।

def myClosure = {
    a, b, c ->
    return (a + b + c)
}
println(myClosure(1, 2, 3))

आउटपुट:

6

जब आप पैरामीटर सूची घोषित नहीं करते हैं, Groovy एक एकल अंतर्निहित पैरामीटर प्रदान करता है जिसका नाम है itक्लोज़र को अन्य क्लोज़र में भी पास किया जा सकता है, और यही वह तरीका है जिससे कलेक्शन मेथड जैसे कि each, collect, तथा findAll काम।

Groovy टूल्स

हम उन तीन महत्वपूर्ण उपकरणों पर नज़र डालेंगे जो इसके साथ आते हैं। Groovy वितरण:

  1. ग्रूविश: यह कमांड लाइन से इंटरैक्टिव रूप से कोड को निष्पादित करता है।
  2. ग्रूवी कंसोल: इंटरैक्टिव कोड निष्पादन के लिए एक ग्राफिकल विंडो।
  3. शानदार: मार डाला Groovy स्क्रिप्ट फ़ाइलों को उसी तरह चलाया जा सकता है जैसे आप पर्ल या किसी अन्य स्क्रिप्ट को चलाते हैं। Python लिपियों.

Groovysh

  • एक कमांड-लाइन शेल।
  • आपको इसे लागू करने में मदद करता है Groovy इंटरैक्टिव तरीके से कोड करें।
  • यह आपको एकल वाक्य या संपूर्ण स्क्रिप्ट दर्ज करने की अनुमति देता है।

नीचे दिया गया स्क्रीनशॉट ग्रूवीश द्वारा एक-एक पंक्ति का मूल्यांकन करते हुए एक्सप्रेशन को दर्शाता है।

ग्रूविश कमांड लाइन शेल चल रहा है Groovy बयान

Groovy कंसोल

  • एक स्विंग इंटरफ़ेस जो न्यूनतम के रूप में कार्य करता है Groovy विकास संपादक.
  • यह आपको लिखने और चलाने की अनुमति देता है। Groovy इंटरैक्टिव तरीके से कोड करें।
  • यह आपको लोड करने और चलाने में मदद करता है Groovy स्क्रिप्ट फ़ाइलें।

में Groovy नीचे दिए गए कंसोल में, स्क्रिप्ट ऊपरी फलक में टाइप की जाती है और परिणाम निचले फलक में दिखाई देता है।

Groovy स्क्रिप्ट और आउटपुट पैन के साथ कंसोल स्विंग एडिटर

Groovy

RSI groovy कमांड वह प्रोसेसर है जो इसे चलाता है Groovy यह सरल प्रोग्राम और स्क्रिप्ट का परीक्षण करने के लिए भी उपयोग किया जा सकता है। यह स्रोत को मेमोरी में बाइटकोड में संकलित करता है और इसे एक ही चरण में निष्पादित करता है, इसलिए किसी अलग बिल्ड चरण की आवश्यकता नहीं होती है। Groovy टर्मिनल से सीधे अभिव्यक्तियाँ, जैसा कि नीचे दिखाया गया है।

टर्मिनल से स्क्रिप्ट निष्पादित करने के लिए ग्रूवी कमांड का उपयोग करना

कहा पे Groovy वास्तविक परियोजनाओं में उपयोग किया जाता है

अधिकांश डेवलपर्स मिलते हैं Groovy यह एक स्वतंत्र भाषा के रूप में नहीं, बल्कि उनके द्वारा पहले से चलाए जा रहे टूल के भीतर स्क्रिप्टिंग लेयर के रूप में उपयोग किया जाता है। यह जानना कि यह कहाँ दिखाई देता है, ऊपर दिए गए सिंटैक्स को समझना बहुत आसान बना देता है।

उपकरण कैसे Groovy प्रयोग किया जाता है
Jenkins डिक्लेरेटिव और स्क्रिप्टेड पाइपलाइनें एक भाषा में लिखी जाती हैं। Groovy डीएसएल और साझा पुस्तकालय सादे हैं Groovy कक्षाएं।
Gradle उत्कृष्ट build.gradle फ़ाइल एक है Groovy यही कारण है कि यह एक स्क्रिप्ट की तुलना में अधिक संक्षिप्त रूप से पढ़ी जाती है। Maven पीओएम या एक चींटी बिल्ड फ़ाइल।
SoapUI Groovy स्क्रिप्ट स्टेप्स और स्क्रिप्ट असर्शन गतिशील अनुरोध डेटा और कस्टम प्रतिक्रिया जांच को संचालित करते हैं।
स्पॉक A Groovy एक परीक्षण ढांचा जिसके गिवन-व्हेन-देन ब्लॉक और डेटा टेबल का उपयोग जेवीएम यूनिट परीक्षणों के लिए व्यापक रूप से किया जाता है।
इलास्टिकसर्च और ग्रेल्स Grails पूर्ण वेब एप्लिकेशन बनाता है Groovyऔर कई डेटा उपकरण स्वीकार करते हैं Groovy कस्टम स्क्रिप्टिंग के लिए।

In स्वचालन परीक्षण टीमों के लिए यह बात दो बार मायने रखती है: सूट चलाने वाली CI जॉब और खुद टेस्ट, दोनों ही Groovyइसलिए, एक ही भाषा पाइपलाइन ग्लू और अभिकथन तर्क को कवर करती है।

Groovy बनाम Java

Groovy Java
डिफ़ॉल्ट एक्सेस मॉडिफ़ायर पब्लिक होता है, इसलिए बिना मॉडिफ़ायर वाला मेथड अपनी क्लास और पैकेज के बाहर भी एक्सेस किया जा सकता है। डिफ़ॉल्ट एक्सेस मॉडिफ़ायर पैकेज-प्राइवेट है, इसलिए मॉडिफ़ायर के बिना फ़ील्ड, मेथड और क्लास केवल अपने पैकेज के भीतर ही दिखाई देते हैं।
क्लास प्रॉपर्टीज के लिए गेटर्स और सेटर्स स्वचालित रूप से उत्पन्न होते हैं। आपको फ़ील्ड के लिए गेटर और सेटर मेथड खुद ही परिभाषित करने होंगे।
Groovy यह डबल-कोटेड स्ट्रिंग्स के अंदर वेरिएबल सब्स्टिट्यूशन की अनुमति देता है। Java स्ट्रिंग इंटरपोलेशन का समर्थन नहीं करता है।
प्रकार संबंधी जानकारी वैकल्पिक है। प्रकार संबंधी जानकारी अनिवार्य है।
कथनों के अंत में अर्धविराम लगाना आवश्यक नहीं है। प्रत्येक वाक्य का अंत अर्धविराम से होता है।
Groovy यह स्वचालित रूप से प्रत्येक स्क्रिप्ट को एक जेनरेटेड स्क्रिप्ट क्लास में लपेट देता है। किसी क्लास को एक्जीक्यूटेबल बनाने के लिए आपको एक मेन मेथड की आवश्यकता होती है।
सब कुछ डिफ़ॉल्ट रूप से सार्वजनिक और गतिशील है, लेकिन @CompileStatic पुनर्स्थापित Java-स्तरीय गति और जाँच। बिल्ड टाइम पर सब कुछ स्टैटिकली कंपाइल और चेक किया जाता है।

के बारे में मिथक Groovy

मिथ्या वास्तविकता
Groovy इसका उपयोग केवल स्क्रिप्टिंग के लिए किया जा सकता है। यह स्क्रिप्टिंग के लिए उत्कृष्ट है, लेकिन यह सामान्य क्लास में भी कंपाइल होता है जिसे आप किसी भी JVM एप्लिकेशन के अंदर भेज सकते हैं।
Groovy यह पूरी तरह से क्लोजर पर आधारित है, इसलिए यह एक कार्यात्मक प्रोग्रामिंग भाषा है। Groovy यह लिस्प और क्लोजर जैसी कार्यात्मक भाषाओं से विचार उधार लेता है, लेकिन मूल रूप से यह एक ऑब्जेक्ट-ओरिएंटेड भाषा बनी हुई है।
Groovy इसका उपयोग केवल टेस्ट-ड्रिवन डेवलपमेंट के लिए ही उपयोगी है। Groovy यह स्पॉक के साथ टीडीडी के लिए एक मजबूत विकल्प है, लेकिन निश्चित रूप से यह इसका उपयोग करने का एकमात्र कारण नहीं है।
आपको केवल जरूरत है Groovy यदि आप Grails का उपयोग करना चाहते हैं। Grails एक शक्तिशाली वेब डेवलपमेंट फ्रेमवर्क है, लेकिन Gradle, Jenkinsऔर स्पॉक सभी उपयोग करते हैं Groovy इसके बिना।

उपयोग की विपक्ष Groovy

  • जेवीएम और Groovy स्क्रिप्ट का प्रारंभ समय धीमा है, जो त्वरित ऑपरेटिंग सिस्टम-स्तरीय स्क्रिप्टिंग के लिए इसके उपयोग को सीमित करता है।
  • Groovy जेवीएम-केंद्रित समुदायों के बाहर इसे व्यापक रूप से नहीं अपनाया जाता है।
  • इसका उपयोग करना असुविधाजनक है Groovy बिना किसी ऐसे IDE के जो इसकी गतिशील विशेषताओं को समझता हो।
  • डायनामिक डिस्पैच से यह संभव हो सकता है Groovy कोड समकक्ष की तुलना में धीमा है Java जब तक आप आवेदन नहीं करते तब तक कोड @CompileStatic.
  • Groovy सामान्य प्रोग्रामों की तुलना में प्रोग्रामों को अधिक मेमोरी की आवश्यकता हो सकती है। Java कार्यक्रम.
  • का ज्ञान Java यह प्रभावी रूप से एक पूर्व शर्त है।

एक बार जब आप सहज हो जाएं Groovy वाक्य संरचना के बाद, अगला स्वाभाविक कदम इसके आसपास का पारिस्थितिकी तंत्र है। बुनियादी बातों को मजबूत करें। Java ट्यूटोरियलफिर देखें कैसे Groovy स्क्रिप्ट बिल्ड और डिप्लॉयमेंट को संचालित करती हैं Jenkinsबिल्ड टूल्स की तुलना करें Maven और अपाचे चींटीऔर पता लगाएं कि कैसे Groovy दावे इसमें फिट होते हैं Selenium और एपीआई टेस्ट सूट।

अक्सर पूछे जाने वाले प्रश्न

Groovy 5.0 जेडीके 11 और उससे ऊपर के संस्करणों को लक्षित करता है। Groovy 4.0 अभी भी JDK 8 का समर्थन करता है, और प्रगति पर है Groovy 6.0 लाइन JDK 17 को लक्षित करती है। किसी संस्करण को चुनने से पहले आधिकारिक अपाचे डाउनलोड पेज पर सिस्टम आवश्यकताओं की तालिका की जांच करें।

नहीं। ग्रूवी कमांड .groovy फ़ाइल को मेमोरी में बाइटकोड में कंपाइल करता है और उसे तुरंत चलाता है। आप ग्रूवीसी का उपयोग करके पहले से कंपाइल कर सकते हैं, जब आप पुन: प्रयोज्य .class फ़ाइलों को पैकेज के अंदर रखना चाहते हैं। Java आवेदन.

हाँ। अपाचे Groovy यह Apache License 2.0 के तहत जारी किया गया है, इसलिए इसका व्यावसायिक उपयोग, संशोधन और पुनर्वितरण नि:शुल्क अनुमत है। पुनर्वितरित संस्करणों पर केवल सामान्य श्रेय और लाइसेंस सूचना संबंधी दायित्व लागू होते हैं।

Groovy Grails एक प्रोग्रामिंग भाषा है। Grails एक फुल-स्टैक वेब फ्रेमवर्क है जो Grails में लिखा गया है। Groovy. आप उपयोग कर सकते हैं Groovy Grails को इंस्टॉल किए बिना भी बिल्ड फाइलों, पाइपलाइनों या परीक्षणों के लिए इसका उपयोग किया जा सकता है, लेकिन Grails इसके बिना मौजूद नहीं हो सकता। Groovy.

ये क्लोज़र, कलेक्शन मेथड और पाइपलाइन स्टेप्स जैसे सामान्य मुहावरों को अच्छी तरह से संभालते हैं। जेनरेट किए गए स्क्रिप्ट को हमेशा पहले ग्रूवी कंसोल में चलाएँ, क्योंकि मॉडल कभी-कभी आपस में मिल जाते हैं। Java सिंटैक्स के साथ Groovy ऐसे शॉर्टकट अपनाना या ऐसे तरीके ईजाद करना जो मौजूद ही न हों।

स्टैक को पेस्ट करें tracई और स्क्रिप्ट को एक सहायक को सौंप दें ताकि संभावित कारणों का पता लगाया जा सके जैसे कि GroovyCastException, सैंडबॉक्स अनुमोदन की कमी, या गलत क्लोज़र डेलीगेट। प्रत्येक सुझाव को एक परिकल्पना के रूप में लें और वास्तविक बिल्ड लॉग के आधार पर इसकी पुष्टि करें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: