Menu
Coddy logo textTech

Introduction aux expressions Lambda

Fait partie de la section Logique et Flux du Journey C++ de Coddy. Leçon 42 sur 56.

Les expressions lambda sont une fonctionnalité puissante de C++ qui vous permet de créer de petites fonctions anonymes exactement là où vous en avez besoin. Considérez-les comme des mini-fonctions que vous pouvez définir et utiliser sans avoir à écrire une déclaration de fonction distincte.

La syntaxe de base d’une expression lambda suit ce modèle : [](){}. Les crochets [] sont appelés la clause de capture, les parenthèses () contiennent les paramètres (comme les fonctions ordinaires), et les accolades {} contiennent le corps de la fonction.


La clause de capture contrôle les variables de la portée environnante que la lambda peut utiliser. Les formes les plus courantes sont les suivantes :

[=] : capturer toutes les variables locales par valeur (la lambda obtient sa propre copie)
[&] : capturer toutes les variables locales par référence (la lambda accède aux variables originales)
[] : ne rien capturer (la lambda ne peut utiliser aucune variable externe)

Voici comment créer et appeler une lambda simple :

auto myLambda = []() {
    std::cout << "Hello from Lambda!" << std::endl;
};

myLambda();  // Call the lambda function

Vous pouvez également définir et exécuter immédiatement une lambda sans la stocker dans une variable :

[]() {
    std::cout << "Immediate execution!" << std::endl;
}();

Les expressions lambda sont particulièrement utiles pour les fonctions courtes et ponctuelles que vous ne souhaitez pas définir séparément. Elles rendent votre code plus concis et maintiennent la logique associée regroupée.

challenge icon

Défi

Facile

Créez un programme qui démontre la syntaxe et l’exécution de base des expressions lambda. Ce défi mettra à l’épreuve votre compréhension de la manière de définir et d’appeler des fonctions lambda simples sans paramètres.

Votre programme doit :

  1. Créer une expression lambda qui affiche Hello from Lambda!
  2. Stocker cette lambda dans une variable à l’aide du mot-clé auto
  3. Appeler la fonction lambda pour l’exécuter
  4. Créer une deuxième expression lambda qui affiche Lambda executed successfully!
  5. Exécuter cette deuxième lambda immédiatement sans la stocker dans une variable

Utilisez exactement le format de sortie suivant :

Hello from Lambda!
Lambda executed successfully!

N’oubliez pas que les expressions lambda utilisent la syntaxe [](){}, où les crochets [] constituent la clause de capture, les parenthèses () contiennent les paramètres (vides pour ce défi) et les accolades {} contiennent le corps de la fonction. Vous pouvez stocker une lambda dans une variable à l’aide de auto variableName = [](){...};, puis l’appeler avec variableName();. Pour une exécution immédiate, vous pouvez utiliser la syntaxe [](){...}();, qui définit et appelle la lambda en une seule instruction.

Essayez vous-même

#include <iostream>
using namespace std;

int main() {
    // TODO: Écrivez votre code ci-dessous
    // Create a lambda expression that prints "Hello from Lambda!"
    // Stockez-le dans une variable en utilisant le mot-clé auto
    
    // Appelez la fonction lambda
    
    // Create a second lambda that prints "Lambda executed successfully!"
    // Exécutez-le immédiatement sans le stocker dans une variable
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur C++ en ligne