Clone
Ăs vezes vocĂȘ quer fazer uma cĂłpia de um valor. O trait Clone
consegue isso.
fn say_hello(name: String) { println!("OlĂĄ {name}") } fn main() { let name = String::from("Alice"); say_hello(name.clone()); say_hello(name); }
This slide should take about 2 minutes.
-
A ideia de
Clone
é tornar fåcil identificar onde as alocaçÔes de heap estão ocorrendo. Procure por.clone()
e alguns outros comovec!
ouBox::new
. -
Ă comum "clonar sua saĂda" de problemas com o verificador de emprĂ©stimo e retornar mais tarde para tentar otimizar esses clones.
-
clone
geralmente realiza uma cĂłpia profunda do valor, o que significa que se vocĂȘ, por exemplo, clonar um array, todos os elementos do array tambĂ©m sĂŁo clonados. -
O comportamento para
clone
Ă© definido pelo(a) usuĂĄrio(a), entĂŁo ele(a) pode executar lĂłgica de clonagem personalizada, se necessĂĄrio.