Я попытался сделать что-то вроде следующего:
val a: Int? = 1
val b: Int? = 1
a?.plus(b)
, но он не компилируется, потому что plus
ожидает Int
.
Я также пытался создать biLet function:
fun <V1, V2, V3> biLet(a: V1?, b: V2?, block: (V1, V2) -> V3): V3? {
return a?.let {
b?.let { block(a, b) }
}
}
и используйте его так:
val result = biLet(a, b) { p1, p2 -> p1 + p2 }
, но, похоже, много работы для чего-то, казалось бы, простого. Есть ли решение попроще?