Pattern matching com Option e enums
Use `match` e `if let` para tratar valores opcionais com segurança.
- 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.
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}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 XPRastreie um Option no fluxo de controle
Acompanhe como um parse com falha retorna Some(número) ou None.
Principais conclusões
Someindica presença de valor.Noneindica ausência explícita.matcheif lettornam 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.
Parse do primeiro token inteiro
Leia uma linha e imprima o primeiro token inteiro, se existir; caso contrário, imprima none.
- Encontra primeiro número
- Sem número
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…