Menu
Coddy logo textTech

Borrow en bucles

Parte de la sección Fundamentos del Journey de Rust de Coddy. Lección 67 de 75.

En Rust, cada valor tiene un propietario, y cuando usas un valor en un bucle, Rust necesita saber si quieres tomarlo prestado (solo observarlo temporalmente) o tomar posesión de él (consumirlo).

Esto es importante porque, si un bucle toma posesión de tus datos, ya no puedes usar esos datos después de que termine el bucle. Comprender esta distinción es la clave para escribir bucles correctamente en Rust.

Por ejemplo, considera los siguientes datos:

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

Método 1: Observar los datos (usando &):

for number in &numbers {
    sum += number;
}
println!("I can use it here: {:?}", numbers);

Método 2: Tomar los datos (sin &):

for number in numbers {
    sum += number;
}
// println!("Can't use {:?} anymore!", numbers);
// Esto causaría un error

Piensa en ello de esta manera:

  1. Usar & es como mirar un álbum de fotos: puedes ver todas las fotos, pero el álbum permanece intacto
  2. No usar & es como sacar las fotos: puedes usarlas, pero el álbum estará vacío después

Ahora este estilo:

for num in numbers.iter() {}

Es similar a esto:

for num in &numbers {}

Y un bucle de mutación:

for num in numbers.iter_mut() { 
    *num *= 2;
}

También se puede escribir de esta manera:

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

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Rust online