2_Strings
Strings in Rust
Abschnitt betitelt „Strings in Rust“Rust Strings sind Unicode codiert.
- Variable Byte-Länge
- 1-4 Bytes pro Zeichen
- Rückwärtskompatibilität zu ASCII
- Verbreitet
- Multilingual
String Literals
Abschnitt betitelt „String Literals“Literal mit escapeden Anfuehrungszeichen
Abschnitt betitelt „Literal mit escapeden Anfuehrungszeichen“let s = "This is a \"string\" literal.\n";Mehrzeiliges Literal
Abschnitt betitelt „Mehrzeiliges Literal“- Backslash escaped Newline
let s = "This is a multiline\"string\" literal.\n";let s = "This is a multilinestring literal. With \no more lines.\n";Raw Strings
Abschnitt betitelt „Raw Strings“- Backslashes werden nich interpretiert
- Nuetzlich fuer Windows-Pfade und Regular-Expressions
let path = r"This is a raw string literal. C:\Users\public";let regex = r"\d+\.(jpg|png)";Byte String
Abschnitt betitelt „Byte String“- Referenz auf ein Array von Bytes
&[u8, 4]
let byte_str = b"POST";- str ist im voarallokierten Speicher im Data-Segment (binary)
Methoden
Abschnitt betitelt „Methoden“s.to_string() &str zu String
- String ist ein variabler Buffer im Heap
- Wie ein
Vec<u8>der korrekte UTF8 Werte enthaelt
Methoden
Abschnitt betitelt „Methoden“s.trim() Whitespace und \n entfernen
s1 == s2 Vergleich gleiche Zeichenfolge, egal wo gespeichert
s.is_empty() Leerer String
s.split(", ") String zu Iterator
Length des Textes
Abschnitt betitelt „Length des Textes“let a = String::from("Bye 🌚︎");a.capacity() // -> 12 buffer sizea.len() // -> 11 bytesa.chars().count(); // 6 charsArrays, Vec und Slices mit enthaltenen Strings
Abschnitt betitelt „Arrays, Vec und Slices mit enthaltenen Strings“let s = vec!["OK", "Computer", "Notok"];s.concat(); // "OKComputerNotok"s.join(" "); // "Ok Computer Notok"- String-slice ist eine Referenz auf einen UTF8-String
- Nur eine Referenz, daher borrowed, der Speicher gehoert der der Variablen nicht
- Unveraenderbar
- Wie ein
&[u8]das korrekte UTF8 Werte enthaelt
Wann welcher String-Typ?
Abschnitt betitelt „Wann welcher String-Typ?“&str oder String
Eine Funktion fn func(s: &str) nimmt
String aehnliche Typen
Abschnitt betitelt „String aehnliche Typen“Stringoder&strfuer UnicodePathBufoder&Pathfuer DateinamenOsStringoder&OsStrfuer Umgebungsvariablen und CMD-ArgumenteVec<u8>oder&[u8]fuer binaere Daten ohne Codierung