Menu
Coddy logo textTech

A Expressão 'match'

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 1 de 66.

A expressão match é a poderosa ferramenta de correspondência de padrões (pattern matching) do Rust que permite comparar um valor com diferentes padrões e executar código com base em qual padrão corresponde. Pense nela como uma versão mais avançada das instruções if que pode lidar com múltiplas condições de forma elegante.

Aqui está a sintaxe básica de uma expressão match:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

Cada linha dentro do match é chamada de "braço". O => separa o padrão do código que é executado quando esse padrão coincide. O sublinhado _ é um padrão curinga especial que coincide com qualquer coisa — é como um "catch-all" para qualquer valor que não coincida com os outros padrões.

Aqui está um exemplo simples que verifica um número:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

Em Rust, expressões match devem ser exaustivas, o que significa que elas devem lidar com todos os valores possíveis. É por isso que o caractere curinga _ é tão importante - ele garante que você cobriu todos os casos que não foram explicitamente correspondidos.

challenge icon

Desafio

Fácil

Escreva uma função describe_number que recebe num e retorna uma descrição em string baseada no valor do número.

Use uma expressão match para retornar diferentes descrições para diferentes números.

Condições:

  • Se num for 0, retorne "zero"
  • Se num for 1, retorne "one"
  • Se num for 2, retorne "two"
  • Se num for 3, retorne "three"
  • Para qualquer outro número, retorne "many"

Parâmetros:

  • num (i32): O número a ser descrito

Retorno: Uma descrição em string do número (String)

Folha de consulta

A expressão match compara um valor com diferentes padrões e executa o código com base em qual padrão coincide:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

Cada linha dentro do match é chamada de "braço" (arm). O => separa o padrão do código que é executado quando esse padrão coincide.

Exemplo:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

O sublinhado _ é um padrão curinga que coincide com qualquer coisa não coberta por outros padrões. As expressões match devem ser exaustivas - elas devem lidar com todos os valores possíveis.

Experimente você mesmo

fn describe_number(num: i32) -> String {
    // Escreva o código aqui
}
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 Logic & Flow