Menu
Coddy logo textTech

Iteração Mutável

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 12 de 66.

Às vezes você precisa fazer mais do que apenas ler elementos de um vetor — você precisa modificá-los. Enquanto a lição anterior mostrou como iterar e ler valores, esta lição ensina como alterar os elementos durante a iteração usando referências mutáveis.

Para modificar elementos durante a iteração, você precisa usar &mut em vez de & em seu laço for:

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

O &mut numbers cria uma referência mutável para o vetor, e cada iteração fornece uma referência mutável para um elemento individual. O operador * (chamado de operador de desferência ou *dereference*) é usado para acessar e modificar o valor real para o qual a referência aponta.

Esse padrão é incrivelmente útil para transformar dados no próprio local. Em vez de criar um novo vetor com valores modificados, você pode atualizar com eficiência o existente. O vetor deve ser declarado como mut para que isso funcione, já que você está alterando seu conteúdo.

Após o loop acima, numbers conteria [2, 4, 6, 8] - cada valor original dobrado no próprio local.

challenge icon

Desafio

Fácil

Escreva uma função add_ten_to_all que recebe um vetor mutável numbers e adiciona 10 a cada elemento no próprio local, retornando o vetor modificado.

Use iteração mutável com &mut para modificar cada elemento diretamente. Lembre-se de usar o operador de desreferência * para acessar e modificar os values reais.

Parâmetros:

  • numbers (Vec<i32>): Um vetor mutável de inteiros para modificar

Retorno: O vetor modificado com 10 adicionado a cada elemento (Vec<i32>)

Experimente você mesmo

fn add_ten_to_all(mut numbers: Vec<i32>) -> Vec<i32> {
    // Escreva o código aqui
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Logic & Flow