Clone
Ăs vezes vocĂȘ quer fazer uma cĂłpia de um valor. O trait Clone
consegue isso.
#[derive(Default)] struct Backends { hostnames: Vec<String>, weights: Vec<f64>, } impl Backends { fn set_hostnames(&mut self, hostnames: &Vec<String>) { self.hostnames = hostnames.clone(); self.weights = hostnames.iter().map(|_| 1.0).collect(); } }
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 como Vec::new
ou Box::new
.
Ă comum âclonar seu caminho para foraâ de problemas com o verificador de emprĂ©stimo, e retornar mais tarde para tentar otimizar esses clones.