Correspondência de Múltiplos Valores
Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 2 de 66.
Às vezes, você precisa corresponder a vários valores diferentes que devem todos acionar o mesmo código. Em vez de escrever braços separados para cada valor, o Rust permite combinar múltiplos padrões em um único braço usando o operador | (OU).
Veja como você pode corresponder a múltiplos valores em um único braço:
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}O operador | funciona como o "OU" em inglês - se o valor corresponder a qualquer um dos padrões separados por |, aquele braço será executado. Isso torna seu código muito mais limpo do que ter braços separados que fazem todos a mesma coisa.
Desafio
FácilVocê receberá um número de dia (1-7) como entrada, representando um dia da semana. Leia a entrada, converta-a para um número inteiro e use uma expressão match com o operador | para imprimir se é um dia útil ou fim de semana.
Requisitos:
- Se o dia for
1,2,3,4, ou5, imprima"Weekday" - Se o dia for
6ou7, imprima"Weekend" - Para qualquer outro número, imprima
"Invalid day"
Entrada: Um único número inteiro representando o número do dia
Saída: Imprima "Weekday", "Weekend", ou "Invalid day"
Folha de consulta
Você pode combinar múltiplos padrões em um único braço de match usando o operador | (OU). Se o valor corresponder a qualquer um dos padrões separados por |, esse braço será executado.
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}Experimente você mesmo
use std::io;
fn main() {
// Ler a entrada
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: i32 = input.trim().parse().expect("Please enter a number");
// TODO: Escreva seu código abaixo usando a expressão match com o operador |
}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
1Fluxo de Controle Avançado
A Expressão 'match'Correspondência de Múltiplos ValoresCorrespondência de IntervalosA Expressão 'if let'Loops como ExpressõesRecapitulação - Parser de Comandos Simples4Agrupando Dados com Structs
O que é uma Struct?Visão Geral de StructsAcessando Campos de uma StructStructs MutáveisStructs como Parâmetros de FunçãoTuple StructsRecapitulação - Criando uma Struct Book2Introdução a Vetores
O que é um Vetor?Criando um VetorAdicionando Elementos com pushAcessando Elementos do VetorIterando sobre um VetorIteração MutávelRemovendo ElementosRecapitulação - Rastreador de Pontuação Básico5Pares Chave-Valor com Hash Maps
O que é um Hash Map?Criando um Hash MapInserindo Pares Chave-ValorAcessando ValoresIterando sobre um Hash MapAtualizando um ValorRemovendo um ParRecapitulação - Contador de Palavras8Projeto: Inventário Simples de Itens
Configuração do ProjetoAdicionando um ItemVerificando o EstoqueVendendo um ItemJuntando tudo3Lista de Tarefas via Linha de Comando
Configuração do ProjetoAdicionando uma TarefaVisualizando Todas as TarefasRemovendo uma TarefaCódigo Final