Bucle for mejorado
Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 66 de 75.
Hay diferentes formas de iterar sobre un array, aquí tienes algunas de ellas:
Considera el siguiente array:
let numbers = [1, 2, 3, 4, 5];Iterador directo:
for num in numbers.iter() {} // Valores: 1, 2, 3, 4, 5
Índice y Valor:
for (index, value) in numbers.iter().enumerate() { } // Valores: (0,1), (1,2), (2,3), (3,4), (4,5)
Slices de tamaño específico:
for chunk in numbers.chunks(2) { } // Valores: [1,2], [3,4], [5]
Iterar con mutación:
for num in numbers.iter_mut() { *num *= 2; } // El arreglo se convierte en: [2, 4, 6, 8, 10]
Desafío
FácilCrea un programa que procese una lista de compras con artículos y sus precios, y proporcione diferentes vistas de los datos.
El programa debe:
- Imprimir cada número de artículo y precio (usando
enumerate) - Imprimir los precios en parejas (usando
chunks) como "bundle deals" - Aplicar un descuento del 10% a todos los precios (usando
iter_mut) - Imprimir los precios finales con descuento
Hoja de referencia
Diferentes formas de iterar sobre arrays en Rust:
Iterador directo:
for num in numbers.iter() {}
// Values: 1, 2, 3, 4, 5Índice y valor con enumerate:
for (index, value) in numbers.iter().enumerate() { }
// Values: (0,1), (1,2), (2,3), (3,4), (4,5)Slices de tamaño específico con chunks:
for chunk in numbers.chunks(2) { }
// Values: [1,2], [3,4], [5]Iterar con mutación usando iter_mut:
for num in numbers.iter_mut() {
*num *= 2;
}
// Array becomes: [2, 4, 6, 8, 10]Pruébalo tú mismo
fn main() {
let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];
println!("Original Prices:");
// TODO: Usar enumerate para imprimir cada número de artículo y precio
// Esperado: "Item 1: $2.99" etc.
println!("\nBundle Deals:");
// TODO: Usar chunks para imprimir pares de precios y sus sumas
// Esperado: "Bundle 1: $2.99 + $1.50 = $4.49" etc.
// TODO: Usar iter_mut para aplicar un 10% de descuento a todos los precios
println!("\nPrices after 10% discount:");
// TODO: Imprimir los precios finales después del descuento
// Esperado: "$2.69" etc.
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 1
Operadores aritméticosOperador de móduloAtajos aritméticosOperadores de comparaciónComparación de strings5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaInferencia de tiposResumen - Inicializar variablesConversión de tipos9Bucles
For sobre seriesBucle WhileBreakContinueBucle anidadoEtiquetas de bucleBucle infinitoResumen - Entrada dinámica