Vec (Vectores)

Vec es el búfer estándar redimensionable asignado al heap:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Vec implementa Deref<Target = [T]>, lo que significa que puedes llamar a métodos slice en un Vec.

Speaker Notes

This slide should take about 5 minutes.
  • Vec es un tipo de colección, junto con String y HashMap. Los datos que contiene se almacenan en el heap. Esto significa que no es necesario conocer el tamaño de los datos durante la compilación. Puede aumentar o disminuir durante la ejecución.
  • Ten en cuenta que Vec<T> también es un tipo genérico, pero no tienes que especificar T de forma explícita. Como siempre sucede con la inferencia de tipos de Rust, T se estableció durante la primera llamada a push.
  • vec![...] es una macro canónica para usarla en lugar de Vec::new() y admite que se añadan elementos iniciales al vector.
  • Para indexar el vector, se utiliza [ ], pero entrará en pánico si se sale de los límites. También se puede usar get para obtener una Option. La función pop eliminará el último elemento.
  • Se estudiarán los slices el tercer día del curso. Por ahora, los participantes solo necesitan saber que un valor del tipo Vec también da acceso a todos los métodos de slice documentados.