ribesg
03/06/2018, 8:25 AMinline fun <T : Any?, R> T.notNullOrElse(notNull: (T) -> R, orElse: (T) -> R): R =
if (this != null) notNull(this) else orElse(this)
val x: String? = "test"
x.notNullOrElse(
{ println(it) },
{ println("x is null") }
)
gildor
03/06/2018, 8:25 AMinline
ribesg
03/06/2018, 8:27 AMif (x == null)
gildor
03/06/2018, 8:27 AMfun <A, B, C, R> ifNonNull(a: A?, b: B?, c: C?, block: (A, B, C) -> R): R?
val a = getA() ?: return
val b = getB() ?: "default b"
val c = getC() ?: error("c is null")
doSomething(a + b + c)