clone() — explicit deep copy. Copy — implicit bitwise copy.
clone():
Clone type.1let s1 = String::from("hello");2let s2 = s1.clone();3println!("{} {}", s1, s2); // Both valid45let v1 = vec![1, 2, 3];6let v2 = v1.clone();
Copy trait:
Clone too.1let x: i32 = 42;2let y = x;3println!("{} {}", x, y); // 42 4245let pair = (1, 2.0);6let pair2 = pair;
When to use:
clone() for explicit ownership.Common mistakes:
String is Copy.Copy for heap types.