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 unString, 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íbal3. 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.
onClickes un parámetro de tipo función.- Su tipo es
() -> Unit, lo cual significa:()→ no recibe argumentos.Unit→ no devuelve nada (equivalente avoiden 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