/* * 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 Collection.firstNonNull(predicate: (T)->R?): R? { for( x in this ) predicate(x)?.let { return it } return null }