Crear y rellenar vectores
Cree Vecs y añada elementos con push
Crear y rellenar vectores es una lección gratuita de Learn Rust Coding en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn Rust Coding, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn Rust Coding incluye 4 lecciones en total.
¿Qué es un vector?
Un vector es una lista ampliable de valores, todos del mismo tipo. A diferencia de un array de tamaño fijo, un vector puede reducirse o crecer mientras se ejecuta el programa.
En Rust, el tipo se escribe Vec<T>, donde T es el tipo de elemento que contiene, como Vec<i32> para enteros.
Un vector vacío
Puede crear un vector nuevo y vacío con Vec::new(). Como todavía no contiene valores, Rust no puede deducir el tipo de sus elementos, por lo que normalmente deberá indicarlo.
Aquí indicamos a Rust que este vector contendrá enteros i32.
fn main() {
let v: Vec<i32> = Vec::new();
println!("len = {}", v.len());
}La macro vec!
La forma más rápida de crear un vector con valores iniciales es la macro vec!. Enumere los valores entre corchetes.
Rust deduce el tipo de los elementos a partir de los valores, por lo que aquí no hace falta indicarlo.
fn main() {
let nums = vec![10, 20, 30];
println!("{:?}", nums);
}Imprimir un vector
Un vector completo se imprime con el formateador de depuración {:?}, no con el normal {}. El formato de depuración muestra los valores entre corchetes.
Use {:#?} para obtener una disposición atractiva en varias líneas cuando el vector sea grande.
fn main() {
let names = vec!["Ann", "Bo", "Cy"];
println!("{:?}", names);
}Añadir valores
Para añadir un valor al final de un vector, llame a push. El vector debe declararse como mut porque la operación lo modifica.
Cada llamada a push añade un elemento y aumenta la longitud en uno.
fn main() {
let mut v = Vec::new();
v.push(1);
v.push(2);
v.push(3);
println!("{:?}", v);
}El tipo se determina con el primer push
Cuando comienza con Vec::new() sin indicar el tipo, Rust espera al primer push para conocer el tipo de los elementos.
A continuación, añadir 3.5 indica a Rust que se trata de un Vec<f64>. Todos los valores posteriores deben ser de ese tipo.
fn main() {
let mut prices = Vec::new();
prices.push(3.5);
prices.push(9.0);
println!("{:?}", prices);
}Rellenar con repeticiones
La macro vec! puede repetir un valor. Escriba vec![value; count] para crear un vector con ese valor repetido count veces.
Resulta útil para preparar una lista de ceros o de valores predeterminados.
fn main() {
let zeros = vec![0; 5];
println!("{:?}", zeros);
}Rellenar en un bucle
Puede llenar un vector usando push dentro de un bucle. Aquí añadimos los cuadrados de los números del 1 al 4.
Empezar con un vector vacío y añadir elementos a medida que se calculan es un patrón común.
fn main() {
let mut squares = Vec::new();
for n in 1..=4 {
squares.push(n * n);
}
println!("{:?}", squares);
}Capacidad frente a longitud
La longitud indica cuántos elementos contiene actualmente un vector. La capacidad indica cuánto espacio tiene reservado antes de necesitar ampliar la memoria.
Si sabe aproximadamente cuántos elementos añadirá, Vec::with_capacity(n) reserva espacio de antemano y evita reasignaciones repetidas.
fn main() {
let mut v = Vec::with_capacity(10);
v.push(1);
println!("len {}, cap {}", v.len(), v.capacity());
}A partir de un array
Puede convertir un array en un vector. Una forma sencilla es .to_vec(), que copia los elementos del array en un nuevo vector con propiedad.
Esto resulta útil cuando empieza con datos fijos, pero necesita que puedan crecer después.
fn main() {
let arr = [1, 2, 3];
let v = arr.to_vec();
println!("{:?}", v);
}Comprobar si está vacío
Use is_empty() para comprobar si un vector no tiene elementos. Devuelve un bool, lo que resulta más claro que comparar la longitud con cero.
Es una buena comprobación previa antes de leer el primer elemento.
fn main() {
let v: Vec<i32> = Vec::new();
if v.is_empty() {
println!("nothing here yet");
}
}Comprobación rápida
Compruebe su comprensión de la creación y el llenado de vectores.
Resumen
Ha aprendido a crear vectores con Vec::new() y la macro vec!, y a llenarlos mediante push, repeticiones, bucles y to_vec().
También ha visto la diferencia entre longitud y capacidad, así como la forma de comprobar si un vector está vacío. A continuación, leerá valores de vectores y recorrerá sus elementos.
Preguntas frecuentes
¿La lección «Crear y rellenar vectores» es gratis?
Sí — el texto completo de «Crear y rellenar vectores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn Rust Coding, actualiza a CoddyKit PRO. El curso de Learn Rust Coding incluye 4 lecciones en total.
¿Qué aprenderé en «Crear y rellenar vectores»?
Cree Vecs y añada elementos con push Practicas Learn Rust Coding con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn Rust Coding?
No se requiere experiencia previa. Learn Rust Coding en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Crear y rellenar vectores»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn Rust Coding?
Sí. Cada lección de Learn Rust Coding incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Crear y rellenar vectores
- Indexar e iterar
- Aumentar y reducir el tamaño
- Vectores de structs