在 Kotlin 中,函数的最终语句可以解释为它的返回值。
像以下示例这样的情况可以简化为不那么冗长吗?
{ text: String ->
val validated = validateText(text)
if (validated) {
actOnValidation()
}
validated
}
下面是使用 RxJava 的示例中的一个具体案例——即使有更好的 Rx 方法,我也对纯 Kotlin 解决方案(如果存在)感兴趣。
fun inputChainObservable(targetField: TextView, chainedField: TextView): Observable<Boolean> {
return targetField.textChanges()
.observeOn(AndroidSchedulers.mainThread())
.map { cs: CharSequence? ->
val hasInput = validateText(cs.toString())
if (hasInput) {
chainedField.requestFocus()
}
hasInput
}
}