Dans Kotlin, l'instruction finale d'une fonction peut être interprétée comme sa valeur de retour.Pour une fonction Kotlin utilisée comme expression, existe-t-il une manière concise d'opérer et de renvoyer une valeur?
Une situation comme l'exemple suivant peut-elle être simplifiée pour être moins verbeuse?
{ text: String ->
val validated = validateText(text)
if (validated) {
actOnValidation()
}
validated
}
Un cas concret où je voudrais faire est ci-dessous dans un exemple en utilisant RxJava - même s'il y a une meilleure approche Rx Je suis aussi intéressé par une solution pure Kotlin si elle existe.
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
}
}