অ্যারেতে একটি উপাদান রয়েছে কিনা তা আমি কীভাবে আবিষ্কার করব? আমি ভেবেছিলাম এমন কিছু হতে পারে [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 () বা। কনটেনসভ্যালু () ব্যবহার করতে হবে
[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
অবশ্যই অবশ্যই # রসিকতা
যদি আপনি সত্যিই কোনও অ্যারেলিস্টে আপনার অন্তর্ভুক্ত পদ্ধতিটি চান তবে কেবল এটি যুক্ত করুন:
ArrayList.metaClass.includes = { i -> i in delegate }
ডোমেনের মতো সামগ্রীর সংগ্রহের ক্ষেত্রে .contains () ব্যবহারের জন্য গুরুত্বপূর্ণ গটচা। ডোমেন ঘোষণাপত্রে যদি ওজবেক্টস সমান হয় কিনা তা নির্ধারণ করার জন্য যদি কোনও সমতুল্য অ্যান্ড হ্যাশকোড বা অন্য কিছু সমান () বাস্তবায়ন থাকে এবং আপনি এটিকে সেট করেছেন ...
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode(includes = "settingNameId, value")
তারপরে .contains (myObjectToCompareTo) সংগ্রহের প্রতিটি অবজেক্ট উদাহরণের জন্য ডেটা সহ MyObjectToCompareTo এর ডেটা মূল্যায়ন করবে। সুতরাং, যদি আপনার সমান পদ্ধতিটি নাচতে না পারে, যেমনটি আমার ছিল না, আপনি অপ্রত্যাশিত ফলাফল দেখতে পাবেন।
আপনি সদস্যতা অপারেটর ব্যবহার করতে পারেন:
def list = ['Grace','Rob','Emmy']
assert ('Emmy' in list)