আমার সহকর্মী এবং আমার একটি বাগ ছিল যা আমাদের অনুমানের কারণেই হয়েছিল যে খালি স্ট্রিম কলিং allMatch()
ফিরে আসবে false
।
if (myItems.allMatch(i -> i.isValid()) {
//do something
}
অবশ্যই, ডকুমেন্টেশনগুলি ধরে নেওয়া এবং না পড়ার জন্য এটি আমাদের দোষ। তবে আমি যা বুঝতে পারি না তা হ'ল কেন allMatch()
একটি খালি স্ট্রিমের জন্য ডিফল্ট আচরণ true
। এর কারণ কী ছিল? ভালো লেগেছে anyMatch()
(যা বিপরীতভাবে আয় মিথ্যা), এই অপারেশন একটি অনুজ্ঞাসূচক উপায় যে একসংখ্যা ছাড়বে এবং এটি সম্ভবত একটি ব্যবহৃত ব্যবহার করা হয় if
বিবৃতি। এই ঘটনাগুলি বিবেচনা করে, খালি স্ট্রিমে allMatch()
ডিফল্ট true
থাকা বেশিরভাগ ব্যবহারের জন্য কেন আকাঙ্ক্ষার কোনও কারণ আছে ?
allMatch
সত্য হয় তবে তা করা উচিতanyMatch
। অতিরিক্তভাবে, খালি ক্ষেত্রে,allMatch(...) == noneMatch(...)
যা খুব অদ্ভুত।