Aumentando e diminuindo
Insira, remova e redimensione.
Aumentando e diminuindo é uma aula grátis de Learn Rust Coding no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn Rust Coding, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn Rust Coding inclui 4 aulas no total.
Vetores podem mudar de tamanho
Uma característica importante dos vetores é que eles mudam de tamanho durante a execução. Você pode adicionar elementos quando tiver mais dados e removê-los quando não precisar mais deles.
Toda alteração de tamanho exige que o vetor seja declarado como mut.
Aumentando com push
O método push adiciona um único elemento ao final, aumentando o vetor em um elemento. Essa é a maneira mais comum de aumentá-lo.
Aqui, o vetor cresce do comprimento 0 para o comprimento 3.
fn main() {
let mut v = Vec::new();
v.push("a");
v.push("b");
v.push("c");
println!("len = {}", v.len());
}Removendo com pop
O método pop remove e retorna o último elemento envolvido em um Option. Normalmente, você obtém Some(value), ou None se o vetor já estiver vazio.
Isso diminui o vetor em um elemento.
fn main() {
let mut v = vec![1, 2, 3];
let last = v.pop();
println!("popped {:?}", last);
println!("now {:?}", v);
}Inserindo no meio
O método insert coloca um valor em um índice específico e desloca os elementos seguintes para a direita. O índice deve estar entre 0 e o comprimento atual.
Aqui inserimos 99 na posição 1.
fn main() {
let mut v = vec![10, 20, 30];
v.insert(1, 99);
println!("{:?}", v);
}Removendo por índice
O método remove exclui o elemento de um índice, retorna esse elemento e desloca os elementos seguintes para a esquerda, preenchendo o espaço vazio.
Atenção: remover um índice que não existe causa um pânico.
fn main() {
let mut v = vec![10, 20, 30];
let gone = v.remove(0);
println!("removed {}", gone);
println!("{:?}", v);
}Remoção rápida com swap_remove
Quando a ordem não importa, swap_remove é mais rápido. Ele move o último elemento para a posição removida, em vez de deslocar todos os elementos.
Isso altera a ordem, mas evita o custo do deslocamento.
fn main() {
let mut v = vec![1, 2, 3, 4];
let x = v.swap_remove(0);
println!("took {}", x);
println!("{:?}", v);
}Removendo tudo
O método clear remove todos os elementos de uma só vez, deixando um vetor vazio com comprimento 0. O vetor mantém sua capacidade alocada para reutilização.
Ele é útil quando você quer preencher um vetor novamente do zero.
fn main() {
let mut v = vec![1, 2, 3];
v.clear();
println!("empty? {}", v.is_empty());
}Reduzindo para um comprimento
O método truncate reduz um vetor ao comprimento escolhido, descartando os elementos extras no final. Se o vetor já for menor, nada acontece.
Aqui mantemos apenas os dois primeiros elementos.
fn main() {
let mut v = vec![1, 2, 3, 4, 5];
v.truncate(2);
println!("{:?}", v);
}Combinando com extend
O método extend acrescenta todos os itens de outra coleção. É como chamar push para cada elemento em uma única etapa.
Aqui, uma segunda lista é adicionada ao final da primeira.
fn main() {
let mut v = vec![1, 2];
v.extend(vec![3, 4, 5]);
println!("{:?}", v);
}Mantendo apenas alguns com retain
O método retain mantém apenas os elementos que passam em um teste, removendo os demais no próprio vetor. Você fornece a ele um fechamento que retorna um bool.
Aqui mantemos apenas os números pares.
fn main() {
let mut v = vec![1, 2, 3, 4, 5, 6];
v.retain(|n| n % 2 == 0);
println!("{:?}", v);
}Ordenando elementos
O método sort reorganiza os elementos do menor para o maior no próprio vetor. Ele não altera o comprimento, apenas a disposição dos elementos.
A ordenação exige que o vetor seja mut.
fn main() {
let mut v = vec![3, 1, 4, 1, 5];
v.sort();
println!("{:?}", v);
}Verificação rápida
Teste sua compreensão sobre como aumentar e diminuir vetores.
Recapitulação
Você aumentou vetores com push, insert e extend, e os diminuiu com pop, remove, swap_remove, clear e truncate.
Você também filtrou com retain e ordenou com sort. A seguir, você aprenderá a armazenar structs dentro de vetores.
Perguntas Frequentes
A aula “Aumentando e diminuindo” é grátis?
Sim — o texto completo de “Aumentando e diminuindo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn Rust Coding, atualize para CoddyKit PRO. O curso de Learn Rust Coding inclui 4 aulas no total.
O que vou aprender em “Aumentando e diminuindo”?
Insira, remova e redimensione. Você pratica Learn Rust Coding com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn Rust Coding?
Nenhuma experiência prévia é necessária. Learn Rust Coding no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Aumentando e diminuindo”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn Rust Coding?
Sim. Cada aula de Learn Rust Coding inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criando e preenchendo vetores
- Indexação e iteração
- Aumentando e diminuindo
- Vetores de structs