Correspondência de Padrões

A palavra-chave match permite que você corresponda um valor a um ou mais padrões (patterns). As comparações são feitas de cima para baixo e a primeira correspondência encontrada é selecionada.

Os padrões podem ser valores simples, similarmente a switch em C e C++:

fn main() {
    let input = 'x';

    match input {
        'q'                   => println!("Encerrando"),
        'a' | 's' | 'w' | 'd' => println!("Movendo por ai"),
        '0'..='9'             => println!("Entrada de número"),
        _                     => println!("Alguma outra coisa"),
    }
}

O padrão _ é um padrão curinga que corresponde a qualquer valor.

Pontos Chave:

  • Você pode apontar como alguns caracteres específicos podem ser usados em um padrão
    • | como um ou
    • .. pode expandir o quanto for necessário
    • 1..=5 representa um intervalo inclusivo
    • _ é um curinga
  • Pode ser útil mostrar como funciona a vinculação, por exemplo, substituindo um caractere curinga por uma variável ou removendo as aspas ao redor de q.
  • Você pode demonstrar correspondência em uma referência.
  • Este pode ser um bom momento para trazer à tona o conceito de padrões irrefutáveis, já que o termo pode aparecer em mensagens de erro.