lunes, 19 de enero de 2026

Kotlin funciones, lambdas y callbacks

Si vienes de Java, JavaScript o Python, Kotlin te va a parecer familiar, pero tiene una ventaja clara:
las funciones son ciudadanos de primera clase.

En este artículo vas a entender qué son las funciones, qué son las lambdas y por qué las usas todo el tiempo en Android y Jetpack Compose.

1. Función normal en Kotlin

fun saludar(nombre: String) {
    println("Hola $nombre")
}

👉 Esto es una función clásica. Puntos clave:

  • Recibe un String
  • No retorna nada → Unit
  • Se ejecuta directamente

2. ¿Qué es una lambda?

Una lambda es simplemente una función anónima (sin nombre) que puedes guardar en una variable o pasar como parámetro.

Ejemplo:

val saludar: (String) -> Unit = { nombre ->
    println("Hola $nombre")
}
  • (String) -> Unit = el tipo de la función: recibe un String, no devuelve nada.
  • { nombre -> println("Hola $nombre") } = el bloque lambda, o sea la implementación.

Ahora puedes usarla así:

saludar("Aníbal") // imprime: Hola Aníbal

3. Lambdas como parámetro

Supongamos esta función:

fun ejecutarOperacion(operacion: (Int, Int) -> Int) {
    val resultado = operacion(5, 3)
    println("Resultado: $resultado")
}

Aquí, operacion es un parámetro que recibe una función (dos Int → devuelve un Int).

La puedes llamar así:

ejecutarOperacion { a, b -> a + b }   // imprime Resultado: 8
ejecutarOperacion { a, b -> a * b }   // imprime Resultado: 15

👉 Eso es lo poderoso: pasas funciones como si fueran datos.

4. En codigo Real creando una app Android

1. La función ButtonLogin

👉 Esta es una función composable (por el decorador @Composable) de Jetpack Compose.
Sirve para definir un componente de UI: en este caso, un botón de login.

@Composable
private fun ButtonLogin(onClick: () -> Unit) {
    Button(
        onClick = onClick,
    ) {
        Text("INICIAR SESIÓN")
    }
}

2. El parámetro onClick: () -> Unit

onClick: () -> Unit es un callback: el “qué hacer cuando se haga clic”. Aquí onClick es un bloque de código que se ejecutará cuando se presione el botón.

  • onClick es un parámetro de tipo función.
  • Su tipo es () -> Unit, lo cual significa:
    • () → no recibe argumentos.
    • Unit → no devuelve nada (equivalente a void en otros lenguajes).

👉 En pocas palabras: onClick es una función que no recibe nada y no retorna nada.

En kotlin, las funciones se pueden invocar de dos formas:

1: Con parametros normales

ButtonLogin(onClick = {
     /* código */
})

2: O usando la sintaxis especial de lambdas como último parámetro

👉 Esto es sintaxis de Kotlin para lambdas.

ButtonLogin {
    /* código */
}

No hay comentarios:

Publicar un comentario