ग्रूवी - वैकल्पिक
ग्रूवी एक "वैकल्पिक रूप से टाइप की जाने वाली भाषा" है, और भाषा के मूल सिद्धांतों को समझते समय यह अंतर एक महत्वपूर्ण है। जब जावा से तुलना की जाती है, जो एक "दृढ़ता से" टाइप की गई भाषा है, जिससे कंपाइलर हर चर के सभी प्रकारों को जानता है और संकलन समय पर कॉन्ट्रैक्ट्स को समझ और सम्मानित कर सकता है। इसका मतलब है कि कंपाइल समय पर मेथड कॉल्स निर्धारित करने में सक्षम हैं।
ग्रूवी में कोड लिखते समय, डेवलपर्स को एक प्रकार प्रदान करने या नहीं करने के लिए लचीलापन दिया जाता है। यह कार्यान्वयन में कुछ सरलता प्रदान कर सकता है और, जब ठीक से लीवरेज किया जाता है, तो आपके आवेदन को एक मजबूत और गतिशील तरीके से सेवा दे सकता है।
ग्रूवी में, 'डीफ़' कीवर्ड के माध्यम से वैकल्पिक टाइपिंग की जाती है। निम्नलिखित के उपयोग का एक उदाहरण हैdef विधि -
class Example {
static void main(String[] args) {
// Example of an Integer using def
def a = 100;
println(a);
// Example of an float using def
def b = 100.10;
println(b);
// Example of an Double using def
def c = 100.101;
println(c);
// Example of an String using def
def d = "HelloWorld";
println(d);
}
}
उपरोक्त कार्यक्रम से, हम देख सकते हैं कि हमने व्यक्तिगत चर को इंटेगर, फ्लोट, डबल या स्ट्रिंग के रूप में घोषित नहीं किया है, भले ही वे इस प्रकार के मान हों।
जब हम उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलेंगे -
100
100.10
100.101
HelloWorld
वैकल्पिक टाइपिंग विकास के दौरान एक शक्तिशाली उपयोगिता हो सकती है, लेकिन विकास के बाद के चरणों के दौरान स्थिरता में समस्याएं पैदा कर सकती हैं जब कोड बहुत विशाल और जटिल हो जाता है।
अपने कोडबस को बिना किसी गड़बड़ी के प्राप्त करने के बिना आप ग्रूवी में वैकल्पिक टाइपिंग का उपयोग कैसे कर सकते हैं, इस पर नियंत्रण पाने के लिए, अपने अनुप्रयोगों में "बतख टाइपिंग" के दर्शन को गले लगाना सबसे अच्छा है।
यदि हम डक टाइपिंग का उपयोग करके उपरोक्त कोड को फिर से लिखते हैं, तो यह नीचे दिए गए एक जैसा दिखेगा। चर नामों को ऐसे नाम दिए गए हैं जो अधिक बार मिलते-जुलते हैं न कि वे जिस प्रकार का प्रतिनिधित्व करते हैं जो कोड को अधिक समझने योग्य बनाता है।
class Example {
static void main(String[] args) {
// Example of an Integer using def
def aint = 100;
println(aint);
// Example of an float using def
def bfloat = 100.10;
println(bfloat);
// Example of an Double using def
def cDouble = 100.101;
println(cDouble);
// Example of an String using def
def dString = "HelloWorld";
println(dString);
}
}