rust / beginner
Snippet
Verstehen von String vs &str in Rust
Rust hat zwei Haupt-Zeichentypen: den besessenen String und die geliehene String-Scheibe (&str). String ist heap-zugewiesen und erweiterbar, während &str eine Referenz auf String-Daten ist (entweder geliehen oder im Binary gespeichert). Funktionen, die &str akzeptieren, sind flexibler, da sie mit beiden Typen funktionieren.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
fn print_greeting(message: &str) {println!("Hello, {}!", message);}fn main() {let owned = String::from("World");print_greeting(&owned);let literal = "Rustacean";print_greeting(literal);}
Erklärung
1
fn print_greeting(message: &str)
Funktion, die jede zeichenkettenähnliche Referenz akzeptiert, sehr flexibel
2
let owned = String::from("World");
Erstellt einen heap-zugewiesenen String, besitzt die Daten
3
print_greeting(&owned);
Übergibt eine Referenz auf den besessenen String
4
let literal = "Rustacean";
String-Literal, das im Programm-Binary gespeichert ist
5
print_greeting(literal);
Übergibt den String-Slice direkt