Trait Clone
Cuando queramos hacer una copia de un valor, podemos hacerlo con el trait Clone.
fn say_hello(name: String) {
println!("Hola {name}")
}
fn main() {
let name = String::from("Alice");
say_hello(name.clone());
say_hello(name);
}
-
La función de
Clonees poder encontrar fácilmente dónde se producen las asignaciones al heap. Busca a.clone()y algunos otros comovec!oBox::new. -
Es habitual “clonar para salir” de los problemas con el verificador de préstamos y volver más tarde para optimizar esos clones.
-
clonegeneralmente realiza una copia a fondo del valor. Por ejemplo, si clonas un array, todos los elementos del array tambien son clonados. -
El comportamiento de
clonees definido por el usuario, entonces puede realizar lógica personalizada de clonación si es necesario.