capypad
0 Tage Serie
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
rust
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