Añadir elementos con push
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 9 de 66.
Una vez que tengas un vector, a menudo querrás añadirle nuevos elementos. Rust proporciona el método .push() para añadir elementos al final de un vector. Esta es una de las operaciones más comunes que realizarás con vectores.
Aquí se explica cómo usar .push():
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);Observa la palabra clave mut: ¡esto es crucial! Dado que añadir elementos cambia el contenido del vector, el vector debe declararse como mutable. Sin mut, Rust no te permitirá modificar el vector.
El método .push() siempre añade el nuevo elemento al final del vector. Cada llamada a .push() incrementa la longitud del vector en uno:
let mut fruits = Vec::new();
fruits.push("apple");
fruits.push("banana");
// fruits ahora contiene ["apple", "banana"]También puedes empezar con un vector que ya tenga elementos y continuar añadiéndole más:
let mut scores = vec![85, 92];
scores.push(78); // scores ahora es [85, 92, 78]Desafío
FácilRecibirás tres números como entrada, cada uno en una línea separada. Lee estos números, conviértelos a enteros y añádelos a un vector usando el método .push(). Después de añadir los tres números, imprime cada elemento del vector en una línea separada.
Requisitos:
- Crea un vector mutable vacío
- Lee tres números de la entrada y convierte cada uno a un entero
- Usa
.push()para añadir cada número al vector - Imprime cada elemento del vector en una línea separada
Entrada: Tres números enteros, cada uno en una línea separada
Salida: Imprime cada elemento del vector en una línea separada
Hoja de referencia
Para añadir elementos a un vector, utiliza el método .push(). El vector debe declararse como mutable con la palabra clave mut:
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);El método .push() añade elementos al final del vector e incrementa su longitud en uno con cada llamada.
También puedes añadir elementos a un vector que ya contiene valores:
let mut scores = vec![85, 92];
scores.push(78); // scores ahora es [85, 92, 78]Pruébalo tú mismo
use std::io;
fn main() {
// Leer tres números de la entrada
let mut input1 = String::new();
io::stdin().read_line(&mut input1).expect("Failed to read line");
let num1: i32 = input1.trim().parse().expect("Invalid input");
let mut input2 = String::new();
io::stdin().read_line(&mut input2).expect("Failed to read line");
let num2: i32 = input2.trim().parse().expect("Invalid input");
let mut input3 = String::new();
io::stdin().read_line(&mut input3).expect("Failed to read line");
let num3: i32 = input3.trim().parse().expect("Invalid input");
// TODO: Escribe tu código a continuación
// Crear un vector mutable y añadirle los números
// Imprimir cada elemento del vector en una línea separada
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo final