Crear un vector
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 8 de 66.
Ahora que entiendes qué son los vectores, aprendamos cómo crearlos. Rust proporciona dos formas principales de crear un vector, cada una adecuada para diferentes situaciones.
El primer método utiliza Vec::new() para crear un vector vacío al que puedes añadir elementos más tarde:
let mut numbers = Vec::new();Observa que usamos mut porque probablemente querremos añadir elementos a este vector vacío más tarde. Rust no siempre puede determinar el tipo de un vector vacío, por lo que es posible que necesites especificarlo explícitamente:
let mut numbers: Vec<i32> = Vec::new();El segundo método utiliza la macro vec![] para crear un vector con valores iniciales:
let numbers = vec![1, 2, 3, 4, 5];La macro vec![] es más conveniente cuando conoces los valores iniciales. Rust puede determinar automáticamente el tipo a partir de los valores que proporciones, por lo que no es necesaria ninguna anotación de tipo. Este vector contiene cinco enteros y está listo para usarse de inmediato.
La macro vec![] también admite una sintaxis de repetición para crear un vector lleno con el mismo valor un número específico de veces:
let zeros = vec![0; 5]; // [0, 0, 0, 0, 0]La sintaxis es vec![value; n], donde value es el elemento a repetir y n es cuántas veces repetirlo. Esto es útil cuando necesitas un vector de un tamaño conocido pre-rellenado con un valor por defecto.
Ambos enfoques crean el mismo tipo de vector; la elección depende de si tienes valores iniciales o si planeas construir el vector gradualmente.
Desafío
FácilRecibirás un número como entrada que representa cuántos elementos debe contener un vector. Lee la entrada, conviértela en un entero y crea un vector con esa cantidad de elementos, donde cada elemento sea el número 10.
Requerimientos:
- Leer la entrada y convertirla en un entero
- Crear un vector usando la macro
vec![] - El vector debe contener el número especificado de elementos
- Cada elemento debe tener el valor
10 - Imprimir cada elemento en una línea separada
Entrada: Un único entero que representa el número de elementos
Salida: Imprimir cada elemento del vector en una línea separada
Hoja de referencia
Rust proporciona dos formas principales de crear vectores:
Usando Vec::new() para crear un vector vacío:
let mut numbers = Vec::new();Usa mut cuando planees añadir elementos más tarde. Es posible que necesites especificar el tipo explícitamente:
let mut numbers: Vec<i32> = Vec::new();Usando la macro vec![] para crear un vector con valores iniciales:
let numbers = vec![1, 2, 3, 4, 5];La macro vec![] determina automáticamente el tipo a partir de los valores proporcionados.
Usando la macro vec![] para crear un vector con un valor repetido:
let numbers = vec![0; 5]; // [0, 0, 0, 0, 0]La sintaxis vec![value; n] crea un vector que contiene value repetido n veces.
Pruébalo tú mismo
use std::io;
fn main() {
// Leer entrada
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let n: usize = input.trim().parse().expect("Invalid input");
// TODO: Escribe tu código a continuación
// Crea un vector con n elementos, cada uno con el valor 10
// Imprime cada elemento 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