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 hacer AppBar universal con Anko DSL?
  • Kotlin: generics, reflexión y la diferencia entre tipo T y T: cualquier
  • ¿Qué uso es "?" En ArrayList <String?>
  • ¿Cómo get "key" a muchos niños desconocidos en Firebase?
  • Aplicación de Android en Gradle: no se puede combinar dex
  • idea no puede encontrar class para importar
  • Error de traducción no detectada: com.android.dx.cf.code.SimException: local 0007: no válido
  • Kotlin: No se puede usar GenericTypeIndicator para llamar al getValue de Firebase Database
  • Error al analizar: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error al procesar la anotación
  • Cierre / oculte el keyboard suave de Android con Kotlin
  • Kotlin "fuera" y "en" y generics - uso correcto