Flow.none: зачем и как прерывается поток при первом совпадении
У вас есть Flow и нужно узнать, что ни один элемент не удовлетворяет предикату, при этом выгодно прервать дальнейшую обработку как можно раньше.
Flow.none — терминальный suspend-оператор, который возвращает true если ни один элемент не прошёл предикат, и возвращает false и отменяет сбор потока при первом элементе, удовлетворяющем предикату.
Функция эквивалентна !any(predicate) и all { !predicate(it) }, возвращает true для пустого потока по логике «пустое множество не содержит элементов, удовлетворяющих предикату»; применяйте её когда нужно быстродействие за счёт ранней отмены и когда предикат может быть suspend-функцией.
• none отменяет поток при первом совпадении.
• Пустой поток даёт true по вакуозной логике.
#Kotlin