capypad
0 Tage Serie
rust / beginner
Snippet

String-Grundlagen: String vs &str

Rust hat zwei Haupt-String-Typen: String (besessen, heap-allokiert) und &str (geliehener String-Slice). String ist wachsbar und veränderbar, während &str eine schreibgeschützte Ansicht in den Text ist. Verwende String, wenn du Ownership brauchst, und &str, wenn du nur lesen oder leihen möchtest.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
fn main() {
// Creating a String from a string literal
let greeting: String = String::from("Hello");
// Creating a string slice reference
let slice: &str = "World";
// Pushing a string slice to a String
let mut combined = greeting;
combined.push_str(" ");
combined.push_str(slice);
// Getting the length
println!("Length: {}", combined.len());
// Checking if empty
println!("Is empty: {}", combined.is_empty());
// Converting String to &str (borrowing)
let as_str: &str = &combined;
println!("As &str: {}", as_str);
}
Erklärung
1
let greeting: String = String::from("Hello");
Erstellt einen besessenen String aus einem String-Literal mit dem from-Konstruktor
2
let slice: &str = "World";
Erstellt einen String-Slice-Verweis auf statische String-Daten
3
combined.push_str(slice);
Hängt einen String-Slice an den String an, ohne den Ownership von slice zu übernehmen
4
combined.len()
Gibt die Byte-Länge des Strings zurück (nicht Zeichenanzahl für UTF-8)
5
let as_str: &str = &combined;
Erstellt eine geliehene Referenz zum String, konvertiert &String zu &str