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::newBox::new 等其他字詞。

我們往往會使用借用檢查器「複製解決問題的方法」,稍後再回來試著將這些複製內容最佳化。