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 等其他字詞。
我們往往會使用借用檢查器「複製解決問題的方法」,稍後再回來試著將這些複製內容最佳化。