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
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 literallet greeting: String = String::from("Hello");// Creating a string slice referencelet slice: &str = "World";// Pushing a string slice to a Stringlet mut combined = greeting;combined.push_str(" ");combined.push_str(slice);// Getting the lengthprintln!("Length: {}", combined.len());// Checking if emptyprintln!("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