forked from sergeych/crypto2
24 lines
755 B
Kotlin
24 lines
755 B
Kotlin
/*
|
|
* Copyright (c) 2025. Sergey S. Chernov - All Rights Reserved
|
|
*
|
|
* You may use, distribute and modify this code under the
|
|
* terms of the private license, which you must obtain from the author
|
|
*
|
|
* To obtain the license, contact the author: https://t.me/real_sergeych or email to
|
|
* real dot sergeych at gmail.
|
|
*/
|
|
|
|
@file:Suppress("unused")
|
|
|
|
package net.sergeych.utools
|
|
|
|
/**
|
|
* Scan the collection and return the first non-null result of the [predicate] on it.
|
|
* If all the elements give null with predicate call, returns null.
|
|
*
|
|
* Note that collection is scanned only to the first non-null predicate result.
|
|
*/
|
|
fun <T,R>Collection<T>.firstNonNull(predicate: (T)->R?): R? {
|
|
for( x in this ) predicate(x)?.let { return it }
|
|
return null
|
|
} |