rust / intermediate
Snippet
Grundlagen von Slices und String Slices
String Slices (&str) sind eine geliehene Referenz auf eine Sequenz von UTF-8 Bytes. Sie können auf einen Teil eines Strings oder direkt auf String-Literal-Daten in der Binary zeigen. Die Verwendung von &str in Funktionssignaturen ermöglicht es deinen Funktionen, sowohl eigene Strings als auch geliehene String Slices ohne Änderung zu akzeptieren.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fn first_word(s: &str) -> &str {let bytes = s.as_bytes();for (i, &byte) in bytes.iter().enumerate() {if byte == b' ' {return &s[0..i];}}s}fn main() {let text = String::from("Hello Rustaceans");let word = first_word(&text);println!("First word: {}", word);let literal = "Hello OpenCode";let word2 = first_word(literal);println!("First word: {}", word2);}
Erklärung
1
fn first_word(s: &str) -> &str
Akzeptiert sowohl &String als auch &str wegen Deref-Koersion
2
let bytes = s.as_bytes();
Konvertiert String zu Byte-Array für Byte-Level Iteration
3
for (i, &byte) in bytes.iter().enumerate()
Iteriert mit Index unter Verwendung von enumerate
4
if byte == b' '
Prüft auf Leerzeichen unter Verwendung des Byte-Literals b' '
5
return &s[0..i]
Gibt Slice von Start bis Leerzeichenposition zurück