কিছু যুক্তি সম্পাদনের আগে আমাকে কিছু কোডে শূন্য / খালি চেক করতে হবে । আমার নীচে আইটেম রয়েছে, কারণ আমি অনুভব করি যে !members?.emptyএটি সঠিক নয়।
নিম্নলিখিত লেখার জন্য কি গ্রোভিয়ার উপায় আছে?
if (members && !members.empty) {
// Some Work
}
উত্তর:
সত্যিই একটি গ্রোভিয়ার ওয়ে আছে।
if(members){
//Some work
}
যদি membersসংগ্রহ হয় তবে সবকিছু করেন । নাল চেকের পাশাপাশি খালি চেক (খালি সংগ্রহগুলি জোর করে false)। শিলা খাঁজকাটা সত্য । :)
members?.age.max()সদস্যরা শূন্য হলে "নাল অবজেক্টে মেথড ম্যাক্স () প্রয়োগ করতে পারে না" দিয়ে ফুঁক দেওয়া হয়। আপনার প্রয়োজন হবেmembers?.age?.max()
List members = null;এবং এর List members = [ [age: 12], [age: 24], [age: null], null ]বিপরীতে
!members.find()
আমি মনে করি এখন এই সমস্যাটি সমাধান করার সর্বোত্তম উপায় হল উপরের কোড। এটি গ্রোভির ১.৮.১ থেকে কাজ করে http://docs.groovy-lang.org/docs/next/html/groovy-jdk/java/util/ Collections.html#find () । উদাহরণ:
def lst1 = []
assert !lst1.find()
def lst2 = [null]
assert !lst2.find()
def lst3 = [null,2,null]
assert lst3.find()
def lst4 = [null,null,null]
assert !lst4.find()
def lst5 = [null, 0, 0.0, false, '', [], 42, 43]
assert lst5.find() == 42
def lst6 = null;
assert !lst6.find()
এফওয়াইআই এই জাতীয় কোড কাজ করে (আপনি এটি কুরুচিপূর্ণ দেখতে পারেন, এটি আপনার অধিকার :)):
def list = null
list.each { println it }
soSomething()
অন্য কথায়, এই কোডটি বাতিল বা খালি চেক উভয়ই অকেজো:
if (members && !members.empty) {
members.each { doAnotherThing it }
}
def doAnotherThing(def member) {
// Some work
}