runIf

inline fun <T, R> T.runIf(condition: Boolean = true, noinline block: T.() -> R): R?

效果等同于 if(){},条件达成执行闭包,它不同于if的是,它具有返回值,可以用于一些条件赋值、可空初始化,例如:

var some:String? = null
if (isTrue){
some = "xxxx"
}

这种初始化赋值可以被改写成:

val some = runIf(isTrue){ "xxx" }

之所以写这个函数是因为 if-else 表达式支持赋值但是 if 不支持