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.