Clone y Copy en Rust
Los tipos Copy se duplican en silencio; todo lo demás se mueve salvo que pidas un clone.
fn main() {
let a = 7;
let b = a;
println!("{a} and {b} both fine");
let owned = String::from("tours");
let copy = owned.clone();
println!("{owned} / {copy}");
let moved = owned;
println!("{moved} now holds it");
let list = vec![1, 2, 3];
let same_again = list.clone();
println!("{:?} {:?}", list, same_again);
}
Cómo funciona
- Los enteros son
Copy: la asignación deja el original usable. - Un
Stringse mueve, yclonees la copia profunda explícita. clonecuesta una asignación de memoria — por eso no es implícito.
Palabras clave y builtins usados aquí
Stringfnlet
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 315
- Tokens
- 95
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 63 segundos.
Paso 2 de 3 en Movimiento y clonación; paso 2 de 15 en Propiedad y préstamos.