Vec

Vec Ă© o buffer padrĂŁo redimensionĂĄvel alocado no heap:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Vec implementa Deref<Target = [T]>, o que significa que vocĂȘ pode chamar mĂ©todos de slice em um Vec.

Speaker Notes

This slide should take about 5 minutes.
  • Vec Ă© um tipo de coleção, como String e HashMap. Os dados que ele contĂ©m sĂŁo armazenados no heap. Isso significa que a quantidade de dados nĂŁo precisa ser conhecida em tempo de compilação. Ela pode crescer ou encolher em tempo de execução.
  • Observe como Vec<T> tambĂ©m Ă© um tipo genĂ©rico, mas vocĂȘ nĂŁo precisa especificar T explicitamente. Como sempre, com a inferĂȘncia de tipos do Rust, T foi estabelecido durante a primeira chamada de push.
  • vec![...] Ă© uma macro canĂŽnica para usar em vez de Vec::new() e suporta a adição de elementos iniciais ao vetor.
  • Para indexar o vetor, vocĂȘ usa [ ], mas uma exceção do tipo pĂąnico (panic) serĂĄ gerada se o Ă­ndice estiver fora dos limites. Alternativamente, usando get vocĂȘ obterĂĄ um Option. A função pop removerĂĄ o Ășltimo elemento.
  • Os slices sĂŁo abordados no dia 3. Por enquanto, os alunos sĂł precisam saber que um valor do tipo Vec dĂĄ acesso a todos os mĂ©todos de slice documentados, tambĂ©m.