capypad
0 Tage Serie
rust / beginner
Snippet

Verstehen von String und &str

Rust hat zwei Haupt-Zeichenketten-Typen: String für besessene, wachsende Zeichenketten und &str für geliehene Zeichenketten-Slices. String::from erstellt eine besessene Zeichenkette aus einem String-Literal. Die Verwendung von &str ist effizienter, wenn man keinen Besitz braucht.

snippet.rs
rust
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);
}
Erklärung
1
let greeting = String::from("Hello");
Erstellt einen besessenen String-Typ, heap-allokiert und veränderbar
2
let slice = &greeting[..4];
Erstellt einen geliehenen &str-Slice vom String, leiht die ersten 4 Zeichen
3
let s1 = "literal string";
String-Literale sind standardmäßig &str, im Binary gespeichert
4
let s2: &str = s1;
Slices können ohne Kopieren zugewiesen werden, nur durch Leihe