Carregando
0x50Lição 6 de 17

Pattern matching com Option e enums

Use `match` e `if let` para tratar valores opcionais com segurança.

18 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Tratar Option<T> sem verificações de null.

Option<T> representa Some(valor) ou None. Pattern matching obriga você a tratar ambos, transformando bugs de ausência de dados em erros de compilação.

main.rs
1fn first_char(text: &str) -> Option<char> {
2    text.chars().next()
3}
4
5fn main() {
6    match first_char("rust") {
7        Some(ch) => println!("{}", ch),
8        None => println!("(empty)"),
9    }
10}
Saída
r

Use match para tratamento explícito e exaustivo. Use if let quando apenas um dos casos importa e o restante pode ser ignorado.

Experimente

Até 15 XP

Rastreie um Option no fluxo de controle

Acompanhe como um parse com falha retorna Some(número) ou None.

Mensagem 1 de 3Previsões 0/0
Input text
parse helper
caller match

Principais conclusões

  • Some indica presença de valor.

  • None indica ausência explícita.

  • match e if let tornam o tratamento claro e seguro.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em Rust

Estes exercícios rodam de verdade. Escreva o programa, clique em “Executar testes” e leia o que o compilador informa: aprender a ler as mensagens do compilador é metade do aprendizado de Rust.

Exercício 1

Parse do primeiro token inteiro

+25 XP

Leia uma linha e imprima o primeiro token inteiro, se existir; caso contrário, imprima none.

  • Encontra primeiro número
  • Sem número
main.rs
Carregando editor…

As aulas de Rust foram escritas para o Rust estável moderno; os exercícios rodam no Rust 1.82 pelo Wandbox, um serviço público gratuito. Seu código-fonte e a entrada de teste são enviados a esse serviço.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…