ग्रोवी "इन" ऑपरेटर को विभिन्न मामलों में अलग-अलग चीजों का मतलब लगता है। कभी-कभी x in y
का अर्थ है y.contains(x)
और कभी-कभी ऐसा लगता है कि y.isCase(x)
पर कॉल किया गया है।ऑपरेटर में ग्रोवी कैसे काम करता है?
ग्रोवी को कैसे पता चलेगा कि किसको कॉल करना है? क्या कक्षाओं का एक विशेष वर्ग या समूह है जो ग्रोवी जानता है कि किसके बारे में .contains विधि का उपयोग किया जाता है? या क्या ऑब्जेक्ट्स में से किसी एक विधि के अस्तित्व से ट्रिगर किया गया व्यवहार है? क्या ऐसे कोई मामले हैं जहां ऑपरेटर को पूरी तरह से किसी और चीज में बदल दिया जाता है?
ठीक है, यह समझ में आता है। मैं "इन" और isCase के बीच संबंधों के बारे में उलझन में था। एक केस लेबल के रूप में एक कंटेनर का उपयोग करते समय अब मैं समझ सकता हूं। पुन: उपयोग करना ऑपरेटर के लिए केस थोड़ा आश्चर्यजनक है, क्योंकि यह स्ट्रिंग == सत्य में 'asdf' जैसे अप्रत्याशित अभिव्यक्तियों की अनुमति देता है। – ataylor
यह सही है, लेकिन ग्रोवी के हिस्से में इमो गरीब है। जबकि केस कथन व्यवहार और तत्व युक्त संग्रह संग्रह के साथ एक ही तर्क का उपयोग करते हैं, वे अन्य स्थितियों में बहुत अलग हैं। उदाहरण के लिए, निम्नलिखित दावा पास नहीं होता है: 'buns' में 'b' पर जोर दें। यह कम से कम कहने के लिए counterintuitive है। –
क्या कोई मुझे कृपया संक्षेप में बता सकता है कि क्या मतलब है? –