Clone
Іноді вам необхідно зробити копію значення. Для цього призначений крейт Clone.
fn say_hello(name: String) { println!("Привіт {name}") } fn main() { let name = String::from("Alice"); say_hello(name.clone()); say_hello(name); }
This slide should take about 2 minutes. 
                    - 
Ідея
Cloneполягає у тому, щоб полегшити виявлення місць, де відбувається виділення пам’яті у купі. Шукайте.clone()та деякі інші, такі якvec!абоBox::new. - 
Зазвичай, ви “клонуєте свій вихід” з проблем з перевіркою позик, а потім повертаєтесь пізніше, щоб спробувати оптимізувати ці клони.
 - 
cloneзазвичай виконує глибоку копію значення, тобто якщо ви, наприклад, клонуєте масив, то всі елементи масиву також будуть клоновані. - 
Поведінка функції
cloneвизначається користувачем, тому вона може виконувати власну логіку клонування, якщо це необхідно.