Adicionando um Item
Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 50 de 66.
Desafio
FácilVocê receberá três entradas. A primeira entrada é o nome de um item, a segunda entrada é o preço do item e a terceira entrada é a quantidade inicial em estoque. Crie 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). Adicione o item ao inventário e imprima uma mensagem de confirmação seguida pelos detalhes atuais do inventário.
Requisitos:
- Importe
HashMapdestd::collections - Leia a primeira entrada (nome do item) e remova os espaços em branco (trim)
- Leia a segunda entrada (preço) e remova os espaços em branco (trim)
- Converta (parse) o preço para
f64 - Leia a terceira entrada (quantidade) e remova os espaços em branco (trim)
- Converta (parse) a quantidade para
i32 - Crie um
HashMap<String, (f64, i32)>mutável para o inventário - Insira o item no inventário com o preço e a quantidade como uma tupla
- Imprima:
Added [item_name] to inventory - Imprima:
Price: $[price] - Imprima:
Quantity: [quantity]
Entrada:
- Primeira linha: Nome do item (ex:
Laptop) - Segunda linha: Preço como um número (ex:
999.99) - Terceira linha: Quantidade como um número (ex:
15)
Saída:
- Primeira linha:
Added [item_name] to inventory - Segunda linha:
Price: $[price] - Terceira linha:
Quantity: [quantity]
Experimente você mesmo
use std::collections::HashMap;
use std::io;
fn main() {
// Ler o nome do item
let mut item_name = String::new();
io::stdin().read_line(&mut item_name).expect("Failed to read line");
let item_name = item_name.trim().to_string();
// Ler o preço
let mut price_input = String::new();
io::stdin().read_line(&mut price_input).expect("Failed to read line");
let price: f64 = price_input.trim().parse().expect("Failed to parse price");
// Ler a quantidade
let mut quantity_input = String::new();
io::stdin().read_line(&mut quantity_input).expect("Failed to read line");
let quantity: i32 = quantity_input.trim().parse().expect("Failed to parse quantity");
// TODO: Escreva seu código abaixo
// Criar um HashMap para armazenar o inventário
// Adicionar o item ao inventário
// Imprimir as mensagens de confirmação
}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