Sobes.tech
Middle

¿Cómo funcionan las expresiones lambda en el lenguaje de programación Kotlin?

sobes.tech AI

Respuesta de la IA

Las expresiones lambda en Kotlin representan funciones anónimas. Pueden ser pasadas como argumentos o almacenadas en variables.

Puntos clave:

  • Sintaxis: Llaves {}. Los parámetros se indican antes de la flecha ->, el cuerpo de la función después. Si no hay parámetros, la flecha es opcional.
  • Nombre implícito del parámetro it: Si la lambda tiene un solo parámetro, no es necesario declararlo explícitamente, y estará disponible bajo el nombre it.
  • Valor de retorno: La última expresión en el cuerpo de la lambda es su valor de retorno.
  • Clausuras (Closures): Las lambdas pueden acceder y modificar variables del ámbito en el que fueron definidas.

Ejemplos:

// Lambda sin parámetros
val hello = { println("Hello, world!") }
hello() // Llamada a la lambda

// Lambda con un parámetro (declaración explícita)
val square = { number: Int -> number * number }
println(square(5))

// Lambda con un parámetro (uso de 'it')
val increment = { it + 1 }
println(increment(10))

// Lambda con múltiples parámetros
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Lambda como argumento de una función de orden superior
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Pasando una lambda

Comparación con funciones anónimas (más detalles):

Característica Expresión lambda Función anónima
Sintaxis {} fun (...)
Valor de retorno La última expresión return explícito
return interno Retorna de la función padre (retorno no local) Retorna de la función anónima (retorno local)
Uso de it Sí (para un parámetro) No

Las lambdas son ampliamente utilizadas en Kotlin, especialmente con funciones de orden superior (map, filter, forEach, etc.), para crear código conciso y expresivo. El compilador las optimiza.