Use takeIf and takeUnless to keep or discard a value.

Take If and Unless

TakeIfUnless.kt
fun main() {
    val stock = 
    val available = stock.takeIf { value ->
        value > 0
    } ?: 0
    val status = stock.takeUnless { value ->
        value == 0
    }?.let { value ->
        "stock:$value"
    } ?: "empty"

    println("stock=$stock")
    println("available=$available")
    println("status=$status")
}
fun main() {
    val stock = 
    val available = stock.takeIf { value ->
        value > 0
    } ?: 0
    val status = stock.takeUnless { value ->
        value == 0
    }?.let { value ->
        "stock:$value"
    } ?: "empty"

    println("stock=$stock")
    println("available=$available")
    println("status=$status")
}
fun main() {
    val stock = 
    val available = stock.takeIf { value ->
        value > 0
    } ?: 0
    val status = stock.takeUnless { value ->
        value == 0
    }?.let { value ->
        "stock:$value"
    } ?: "empty"

    println("stock=$stock")
    println("available=$available")
    println("status=$status")
}
take-if-unless `takeIf` returns the value when a condition is true; `takeUnless` does the inverse.