यदि किसी सरणी में कोई तत्व है तो मैं कैसे पता लगाऊं? मैंने सोचा कि कुछ ऐसा हो सकता है, [1, 2, 3].includes(1)
जिसका मूल्यांकन होगा true
।
assert [12,42,33].indexOf(42) == 1
यदि किसी सरणी में कोई तत्व है तो मैं कैसे पता लगाऊं? मैंने सोचा कि कुछ ऐसा हो सकता है, [1, 2, 3].includes(1)
जिसका मूल्यांकन होगा true
।
assert [12,42,33].indexOf(42) == 1
जवाबों:
.contains () सूचियों के लिए सबसे अच्छा तरीका है, लेकिन नक्शे के लिए आपको .containsKey () या .containsValue () का उपयोग करना होगा।
[a:1,b:2,c:3].containsValue(3)
[a:1,b:2,c:3].containsKey('a')
if(aMap["aKey"]==aValue)
।
कुछ सिंटेक्स चीनी
1 in [1,2,3]
def m = [a: true]; 'a' in m
→ सच अभी तक def m = [a: false]; 'a' in m
→ असत्य!
सूचियों के लिए, उपयोग करें contains
:
[1,2,3].contains(1) == true
true == true
#joke ज़ाहिर है,
यदि आप वास्तव में अपनी पद्धति को एक ArrayList पर शामिल करना चाहते हैं, तो बस इसे जोड़ें:
ArrayList.metaClass.includes = { i -> i in delegate }
डोमेन जैसे ऑब्जेक्ट के संग्रह पर .contains () का उपयोग करने के लिए महत्वपूर्ण गोत्चा। यदि डोमेन घोषणा में एक EqualsAndHashCode, या कुछ अन्य समान () कार्यान्वयन शामिल हैं, तो यह निर्धारित करने के लिए कि क्या ओजबेक समान हैं, और आपने इसे इस तरह सेट किया है ...
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode(includes = "settingNameId, value")
तब .contains (myObjectToCompareTo) संग्रह में प्रत्येक ऑब्जेक्ट उदाहरण के लिए डेटा के साथ myObjectToCompareTo में डेटा का मूल्यांकन करेगा। इसलिए, यदि आपकी बराबरी का तरीका सूंघना नहीं है, जैसा कि मेरा नहीं था, तो आप अप्रत्याशित परिणाम देख सकते हैं।
आप सदस्यता ऑपरेटर का उपयोग कर सकते हैं:
def list = ['Grace','Rob','Emmy']
assert ('Emmy' in list)