Rust · Nivel principiante · Etapa 6

Analizar e invertir un array

Convierte cinco valores de texto en un array, consulta su contenido e invierte su orden.

Qué hace este ejercicio

Lee exactamente cinco textos separados por comas, informa de si el array está vacío y de si contiene el texto 5, invierte el orden y muestra cada elemento. La sexta etapa reúne conversión de colecciones, préstamo mutable y métodos de arrays.

Explicación

La función recibe una referencia mutable a un array de cinco cadenas. Puede consultar su contenido y cambiar su orden sin tomar posesión del array.

fn analyze_array(arr: &mut [String; 5]) {
    let empty = arr.is_empty();
    let has_five = arr.contains(&"5".to_string());
    arr.reverse();

    for element in arr.iter() {
        println!("{}", element);
    }
}

En un array cuyo tamaño está fijado en cinco, is_empty() siempre devuelve false. La conversión desde el vector usa try_into().unwrap(), por lo que la entrada debe contener exactamente cinco elementos. El código no limpia los textos después de read_line: conserva tanto los espacios como el salto de línea final que produce Enter.

Por eso, al escribir 1,2,3,4,5 y pulsar Enter, el quinto elemento es realmente "5\n". contains(&"5".to_string()) devuelve false y, después de reverse, ese elemento se imprime primero con un salto adicional antes de continuar con 4, 3, 2 y 1. Aplicar trim a cada elemento sería una mejora futura; el código auditado todavía no lo hace.

Conceptos practicados

Cómo ejecutarlo

Ejecuta el binario e introduce cinco valores separados por comas:

cargo run --bin desafioMetodosArrays

Con una entrada interactiva normal como 1,2,3,4,5, el programa indica que no contiene el texto exacto 5. Después muestra 5, una línea vacía causada por el salto conservado, y continúa con 4, 3, 2 y 1.

salida real
cargo run --bin desafioMetodosArrays
1,2,3,4,5
Is empty: false
Contains 5: false
Reversed Elements:
5

4
3
2
1

Ejemplo: este programa lee una entrada. Con 1,2,3,4,5 produce la salida de arriba.