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); }
This slide should take about 2 minutes.
-
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.