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
Clone
es 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.
-
clone
generalmente realiza una copia a fondo del valor. Por ejemplo, si clonas un array, todos los elementos del array tambien son clonados. -
El comportamiento de
clone
es definido por el usuario, entonces puede realizar lógica personalizada de clonación si es necesario.