rust / beginner
Snippet
Understanding String and &str
Rust has two main string types: String for owned, growable strings and &str for borrowed string slices. String::from creates an owned string from a string literal. Using &str is more efficient when you don't need ownership.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
fn main() {let greeting = String::from("Hello");let slice = &greeting[..4];println!("Full: {}", greeting);println!("Slice: {}", slice);let s1 = "literal string";let s2: &str = s1;println!("s1: {}, s2: {}", s1, s2);}
Breakdown
1
let greeting = String::from("Hello");
Creates an owned String type, heap-allocated and mutable
2
let slice = &greeting[..4];
Creates a borrowed &str slice from the String, borrowing first 4 characters
3
let s1 = "literal string";
String literals are &str by default, stored in binary
4
let s2: &str = s1;
Slices can be assigned without copying, just borrowing