Sobes.tech
Middle

Comment fonctionnent les expressions lambda dans le langage de programmation Kotlin?

sobes.tech IA

Réponse de l'IA

Les expressions lambda en Kotlin représentent des fonctions anonymes. Elles peuvent être passées en tant qu'arguments ou stockées dans des variables.

Points clés:

  • Syntaxe: Accolades {}. Les paramètres sont indiqués avant la flèche ->, le corps de la fonction après. Si aucun paramètre, la flèche est facultative.
  • Nom implicite du paramètre it: Si la lambda a un seul paramètre, il n'est pas nécessaire de le déclarer explicitement, il sera accessible sous le nom it.
  • Valeur de retour: La dernière expression dans le corps de la lambda est sa valeur de retour.
  • Fermetures (Closures): Les lambdas peuvent accéder et modifier des variables de la portée dans laquelle elles ont été définies.

Exemples:

// Lambda sans paramètres
val hello = { println("Hello, world!") }
hello() // Appel de la lambda

// Lambda avec un paramètre (déclaration explicite)
val square = { number: Int -> number * number }
println(square(5))

// Lambda avec un paramètre (utilisation de 'it')
val increment = { it + 1 }
println(increment(10))

// Lambda avec plusieurs paramètres
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Lambda en tant qu'argument d'une fonction d'ordre supérieur
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Passage d'une lambda

Comparaison avec des fonctions anonymes (plus de détails):

Caractéristique Expression lambda Fonction anonyme
Syntaxe {} fun (...)
Valeur de retour La dernière expression return explicite
return interne Retourne de la fonction parente (retour non local) Retourne de la fonction anonyme (retour local)
Utilisation de it Oui (pour un paramètre) Non

Les lambdas sont largement utilisées en Kotlin, notamment avec les fonctions d'ordre supérieur (map, filter, forEach, etc.), pour créer un code concis et expressif. Le compilateur les optimise.