Menu
Coddy logo textTech

Iteração Mutável

Parte da seção Lógica & Fluxo 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 — precisa modificá-los. Embora a lição anterior tenha mostrado 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 enquanto itera, você precisa usar &mut em vez de & no seu loop for:

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

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

&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 desreferenciação) é usado para acessar e modificar o valor real para o qual a referência aponta.

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

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

challenge icon

Desafio

Fácil
Escreva uma função add_ten_to_all que receba um vetor mutável numbers, adicione 10 a cada elemento diretamente no vetor e, em seguida, retorne 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 valores reais.

Parâmetros:

  • numbers (Vec<i32>): um vetor mutável de inteiros a ser modificado

Retorna: 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 Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online