Clone
有時候,您可能會「想要」複製一個值。Clone
特徵可完成這項作業。
#[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.
Clone
的概念是要輕鬆找出堆積分配量的發生位置。請尋找 .clone()
和 Vec::new
或 Box::new
等其他字詞。
我們往往會使用借用檢查器「複製解決問題的方法」,稍後再回來試著將這些複製內容最佳化。