Menu
Coddy logo textTech

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]
challenge icon

Desafio

Fácil

Crie 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:

  1. Imprimir o número de cada item e o preço (usando enumerate)
  2. Imprimir os preços em pares (usando chunks) como "bundle deals"
  3. Aplicar um desconto de 10% a todos os preços (usando iter_mut)
  4. 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.

}
quiz iconTeste seus conhecimentos

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