Mini-Projeto: Processador de Vendas Funcional 💰
Neste projeto, vamos usar o poder dos Iteradores e Closures para processar uma lista de vendas de forma limpa e eficiente.
📋 Requisitos
- Dados: Tenha um vetor de tuplas
(cliente, valor). - Transformação: Aplique um "imposto" de 10% sobre todos os valores usando
.map(). - Filtragem: Mantenha apenas as vendas que, após o imposto, resultem em um valor maior que 50.
- Agregação: Calcule o valor total das vendas filtradas usando
.sum()ou.fold().
🚀 Guia de Execução
- Implementação sugerida:
fn main() { let vendas = vec![ ("Alice", 100.0), ("Bob", 30.0), ("Charlie", 50.0), ("David", 200.0), ]; let imposto = 1.10; let total_vendas_grandes: f64 = vendas.iter() .map(|(_, valor)| valor * imposto) // Aplica imposto .filter(|&valor_final| valor_final > 50.0) // Filtra grandes .sum(); // Soma tudo println!("O total das vendas processadas é: R${:.2}", total_vendas_grandes); }
✅ Critérios de Aceite
- [ ] O código não utiliza loops
forouwhilemanuais. - [ ] O pipeline de iteradores é claro e funcional.
- [ ] O uso de closures captura as variáveis de ambiente necessárias.