Verificando o Estoque
Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 51 de 66.
Desafio
FácilVocê receberá quatro entradas. A primeira entrada é o nome de um item para verificar. A segunda entrada é uma lista de nomes de itens no inventário separados por vírgula. A terceira entrada é uma lista de preços correspondentes a cada item separados por vírgula. A quarta entrada é uma lista de quantidades correspondentes a cada item separados por vírgula. Construa um HashMap para armazenar os dados do inventário onde a chave é o nome do item e o valor é uma tupla contendo o preço e a quantidade (f64, i32). Em seguida, verifique se o item solicitado existe no inventário usando .get() e imprima as informações de estoque apropriadas.
Requisitos:
- Importe
HashMapdestd::collections - Leia a primeira entrada (nome do item para verificar) e remova os espaços em branco (trim)
- Leia a segunda entrada (nomes dos itens separados por vírgula) e remova os espaços em branco (trim)
- Leia a terceira entrada (preços separados por vírgula) e remova os espaços em branco (trim)
- Leia a quarta entrada (quantidades separadas por vírgula) e remova os espaços em branco (trim)
- Crie um
HashMap<String, (f64, i32)>mutável para o inventário - Divida os nomes dos itens por vírgulas
- Divida os preços por vírgulas e converta cada um para
f64 - Divida as quantidades por vírgulas e converta cada uma para
i32 - Insira cada item no inventário com seu preço e quantidade correspondentes como uma tupla
- Use
.get()para verificar se o item solicitado existe no inventário - Use uma expressão
matchpara lidar com oOptionretornado por.get() - No braço
Some, extraia o preço e a quantidade da tupla e imprima:[item_name] is in stockPrice: $[price]Quantity: [quantity]
- No braço
None, imprima:[item_name] is not in stock
Entrada:
- Primeira linha: Nome do item para verificar (ex:
Laptop) - Segunda linha: Nomes dos itens separados por vírgula (ex:
Laptop,Mouse,Keyboard) - Terceira linha: Preços separados por vírgula (ex:
999.99,25.50,75.00) - Quarta linha: Quantidades separadas por vírgula (ex:
15,50,30)
Saída:
- Se o item existir no inventário:
- Primeira linha:
[item_name] is in stock - Segunda linha:
Price: $[price] - Terceira linha:
Quantity: [quantity]
- Primeira linha:
- Se o item não existir:
[item_name] is not in stock
Experimente você mesmo
use std::collections::HashMap;
use std::io;
fn main() {
// Ler o nome do item para verificar
let mut item_to_check = String::new();
io::stdin().read_line(&mut item_to_check).expect("Failed to read line");
let item_to_check = item_to_check.trim();
// Ler os nomes dos itens separados por vírgula
let mut items_input = String::new();
io::stdin().read_line(&mut items_input).expect("Failed to read line");
let items_input = items_input.trim();
// Ler os preços separados por vírgula
let mut prices_input = String::new();
io::stdin().read_line(&mut prices_input).expect("Failed to read line");
let prices_input = prices_input.trim();
// Ler as quantidades separadas por vírgula
let mut quantities_input = String::new();
io::stdin().read_line(&mut quantities_input).expect("Failed to read line");
let quantities_input = quantities_input.trim();
// TODO: Escreva seu código abaixo
// Criar um HashMap para armazenar os dados do inventário
// Dividir as entradas e popular o HashMap
// Usar .get() para verificar se o item existe
// Usar match para lidar com o Option e imprimir a saída apropriada
}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