Cómo regresar desde el tipo de function Kotlin

Estoy usando el tipo de function para almacenar el código que se invocará onclick en el button.
Cómo regresar desde este tipo de function
Código que se proporciona a continuación:

var SearchClickEvent: ((searchString: String) -> Unit)? = null inputDialog!!.SearchClickEvent = Search_Click private val Search_Click = { searchString: String -> if(searchString.isEmpty()){ return//Error msg : return is not allowed here //How to return from here } } 

NOTA: estoy almacenando un fragment de código en una variable que no llama ni escribe ninguna function

necesita crear una label con statement de devolución explícita en lambda, por ejemplo:

 // label for lambda---v val Search_Click = action@{ searchString: String -> if (searchString.isEmpty()) { return@action; } // do working } 

O invierta la instrucción if de la siguiente manera:

 val Search_Click = { searchString: String -> if (!searchString.isEmpty()) { // do working } } 

También puedes hacerlo así:

 private val Search_Click = fun(searchString: String) { if (searchString.isEmpty()) return // more code } 

Kotlin en acción:

Si usa la palabra key return en una lambda, regresa de la function en la que llamó a la lambda, no solo de la lambda misma. Tal statement de return se denomina return no local , porque regresa de un bloque más grande que el bloque que contiene la statement de return .

La regla es simple: el return retorna desde la function más cercana declarada usando la palabra key fun . Las expresiones lambda no usan la palabra key de fun , por lo que un return en una lambda regresa de la function externa.

  • Cómo convertir la expresión de asignación de Java a Kotlin
  • En la biblioteca de Injekt para Kotlin, ¿cómo creo ámbitos locales, como para cada actividad de Android?
  • RxJava2 switchIfEmpty y verificando una ejecución
  • Parceler: no se puede encontrar el generador de lectura / escritura para el tipo io.realm.RealmList
  • Habilitación de la página de inicio de session para el server de autorizaciones / resources de spring
  • ¿Cómo se especifican los generics de tipado de pato (interfaz implícita) en Kotlin?
  • Cómo usar un setter personalizado en el cuerpo constructor de la class Kotlin
  • ¿Cómo puedo anular un método de Java y cambiar la capacidad de anulación de un parámetro?
  • Dependencia de Maven utilizando Kotlin no trayendo classs de Kotlin
  • Comportamiento de RxJava Schedulers.immediate () mientras testings unitarias
  • ¿Cómo pasar una list como parámetro de testing parametrizado de JUnit5?