Menu
Coddy logo textTech

Introdução a Expressões Lambda

Parte da seção Lógica & Fluxo do Journey de C++ da Coddy. Lição 42 de 56.

As expressões Lambda são um recurso poderoso do C++ que permite criar pequenas function anônimas exatamente onde você precisa delas. Pense nelas como mini-functions que você pode definir e usar without precisar escrever uma declaração de function separada.

A sintaxe básica para uma expressão lambda segue este padrão: [](){}. Os colchetes [] são chamados de cláusula de captura, os parênteses () contêm parâmetros (assim como as funções regulares), e as chaves {} contêm o corpo da function.


A cláusula de captura controla quais variable do escopo ao redor a lambda pode usar. As formas mais comuns são:

[=] — captura todas as variable locais por valor (a lambda obtém sua própria copy)
[&] — captura todas as variable locais por referência (a lambda acessa as originais)
[] — não captura nada (a lambda não pode usar nenhuma variable externa)

Veja como criar e chamar uma lambda simples:

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

myLambda();  // Chama a função lambda

Você também pode definir e executar uma lambda imediatamente sem armazená-la em uma variável:

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

Lambda expression são particularmente úteis para functions curtas e de uso único que você não quer definir separadamente. Elas tornam seu código mais conciso e mantêm a lógica relacionada próxima.

challenge icon

Desafio

Fácil

Create um programa que demonstre a sintaxe básica e a execution de expressões lambda. Este desafio testará sua compreensão de como definir e chamar simples funções lambda sem parâmetros.

Seu programa deve:

  1. Create uma expressão lambda que prints Hello from Lambda!
  2. Store esta lambda em uma variable using a palavra-chave auto
  3. Call a função lambda para executá-la
  4. Create uma segunda expressão lambda que prints Lambda executed successfully!
  5. Execute esta segunda lambda immediately without armazená-la em uma variable

Use o seguinte formato de saída exato:

Hello from Lambda!
Lambda executed successfully!

Lembre-se de que expressões lambda usam a sintaxe [](){}, where os colchetes [] são a cláusula de captura, os parênteses () contêm parâmetros (vazios para este desafio) e as chaves {} contêm o corpo da function. Você pode Store uma lambda em uma variable using auto variableName = [](){...}; e then chamá-la com variableName();. Para execution Immediate, você pode usar a sintaxe [](){...}();, que define e chama a lambda em uma única instrução.

Experimente você mesmo

#include <iostream>
using namespace std;

int main() {
    // TODO: Escreva seu código abaixo
    // Create a lambda expression that prints "Hello from Lambda!"
    // Armazene-a em uma variável usando a palavra-chave auto
    
    // Chame a função lambda
    
    // Create a second lambda that prints "Lambda executed successfully!"
    // Execute-a imediatamente sem armazenar em uma variável
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de C++ online