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 funções pequenas e anônimas exatamente onde você precisa delas. Pense nelas como mini funções que você pode definir e usar sem precisar escrever uma declaração de função separada.

A sintaxe básica de 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 comuns) e as chaves {} contêm o corpo da função.


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

[=]: captura todas as variáveis locais por valor (a lambda recebe sua própria cópia)
[&]: captura todas as variáveis locais por referência (a lambda acessa as originais)
[]: não captura nada (a lambda não pode usar variáveis externas)

Veja como criar e chamar uma lambda simples:

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

myLambda();  // Call the lambda function

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

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

As expressões lambda são particularmente úteis para funções 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

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

Seu programa deve:

  1. Criar uma expressão lambda que imprima Hello from Lambda!
  2. Armazenar essa lambda em uma variável usando a palavra-chave auto
  3. Chamar a função lambda para executá-la
  4. Criar uma segunda expressão lambda que imprima Lambda executed successfully!
  5. Executar essa segunda lambda imediatamente, sem armazená-la em uma variável

Use o seguinte formato exato de saída:

Hello from Lambda!
Lambda executed successfully!

Lembre-se de que as expressões lambda usam a sintaxe [](){}, em que os colchetes [] são a cláusula de captura, os parênteses () contêm os parâmetros (vazios neste desafio) e as chaves {} contêm o corpo da função. Você pode armazenar uma lambda em uma variável usando auto variableName = [](){...}; e depois chamá-la com variableName();. Para execução imediata, 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