Correspondência de Múltiplos Valores
Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 2 de 66.
Às vezes, você precisa corresponder a vários valores diferentes que devem acionar o mesmo código. Em vez de escrever braços separados para cada valor, Rust permite combinar vários padrões em um único braço usando o operador | (OU).
Veja como você pode corresponder a vários 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 "OR" em inglês — se o valor corresponder a qualquer um dos padrões separados por |, esse ramo será executado. Isso torna seu código muito mais limpo do que ter ramos separados que fazem todos a mesma coisa.
Desafio
FácilVocê receberá um número de day (1-7) como input, representando um dia da semana. Leia o input, converta-o em um inteiro e use uma expressão match com o operador | para imprimir se é um dia útil ou um fim de semana.
Requisitos:
- Se o
dayfor1,2,3,4ou5, imprima"Weekday" - Se o
dayfor6ou7, imprima"Weekend" - Para qualquer outro número, imprima
"Invalid day"
Entrada: Um único inteiro representando o número do day
Saída: Imprima "Weekday", "Weekend" ou "Invalid day"
Experimente você mesmo
use std::io;
fn main() {
// Ler 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 Lógica & Fluxo
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 FinalPratique por conta própria: Compilador de Rust online