Loop For Aprimorado
Parte da seção Fundamentals do Journey de Rust da Coddy — lição 66 de 75.
Existem diferentes maneiras de iterar sobre um array, aqui estão algumas delas:
Considere o seguinte array:
let numbers = [1, 2, 3, 4, 5];Iterador Direto:
for num in numbers.iter() {} // Valores: 1, 2, 3, 4, 5
Índice & Valor:
for (index, value) in numbers.iter().enumerate() { } // Valores: (0,1), (1,2), (2,3), (3,4), (4,5)
Fatias de tamanho específico:
for chunk in numbers.chunks(2) { } // Valores: [1,2], [3,4], [5]
Iterar com mutação:
for num in numbers.iter_mut() { *num *= 2; } // O array torna-se: [2, 4, 6, 8, 10]
Desafio
FácilCrie um programa que processe uma lista de compras com itens e seus preços, e forneça diferentes visualizações dos dados.
O programa deve:
- Imprimir o número de cada item e o preço (usando
enumerate) - Imprimir os preços em pares (usando
chunks) como "bundle deals" - Aplicar um desconto de 10% a todos os preços (usando
iter_mut) - Imprimir os preços finais com desconto
Folha de consulta
Diferentes maneiras de iterar sobre arrays em Rust:
Iterador Direto:
for num in numbers.iter() {}
// Valores: 1, 2, 3, 4, 5Índice e Valor com enumerate:
for (index, value) in numbers.iter().enumerate() { }
// Valores: (0,1), (1,2), (2,3), (3,4), (4,5)Slices de tamanho específico com chunks:
for chunk in numbers.chunks(2) { }
// Valores: [1,2], [3,4], [5]Iterar com mutação usando iter_mut:
for num in numbers.iter_mut() {
*num *= 2;
}
// O array torna-se: [2, 4, 6, 8, 10]Experimente você mesmo
fn main() {
let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];
println!("Original Prices:");
// TODO: Use enumerate para imprimir o número de cada item e o preço
// Esperado: "Item 1: $2.99" etc.
println!("\nBundle Deals:");
// TODO: Use chunks para imprimir pares de preços e suas somas
// Esperado: "Bundle 1: $2.99 + $1.50 = $4.49" etc.
// TODO: Use iter_mut para aplicar 10% de desconto em todos os preços
println!("\nPrices after 10% discount:");
// TODO: Imprimir os preços finais após o desconto
// Esperado: "$2.69" etc.
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Entrada e Saída Básica
Exibindo no ConsoleLendo a Entrada do UsuárioRevisão - Até 120Revisão - Verdadeiro ou Falso5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 33Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaInferência de TipoRecapitulação - Inicializar VariáveisConversão de Tipo9Laços
For sobre SériesLaço WhileBreakContinueLaços AninhadosRótulos de LoopLoop InfinitoRecapitulação - Entrada Dinâmica