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)