String — owned, heap-allocated. &str — borrowed string slice.
String:
&str:
1// String: owned2let s: String = String::from("hello");34// &str: borrowed5let s: &str = "hello"; // literal6let s: &str = &owned_string; // slice
Conversion:
1// &str -> String2let owned = String::from("hello");34// String -> &str5let slice: &str = &owned;
Key: String for owned data, &str for borrowed.