Se você quiser criar uma cópia profunda de dados alocados na _heap_ (como uma `String`), você pode usar o método `clone`. ```rust fn main() { let s1 = String::from("hello"); let s2 = s1.clone(); // s2 é uma cópia profunda de s1. // Tanto s1 quanto s2 são válidos e possuem seus próprios dados. println!("s1 = {}, s2 = {}", s1, s2); } // Ambos s1 e s2 saem de escopo. `drop` é chamado para s2, depois para s1, // liberando suas respectivas memórias. ``` Clonar pode ser uma operação cara, pois envolve a cópia de todos os dados na _heap_. **:: Referência ::** [[What is Ownership? - The Rust Programming Language]](https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html)