capypad
0 Tage Serie
rust / intermediate
Snippet

Slice-Muster in Funktionsparametern

Slice-Muster in match-Ausdrücken destruktorisieren Arrays und Slices prägnant. Das .. passt auf den Rest des Slices und ermöglicht es, spezifische Elemente zu erfassen während der Rest ignoriert wird. Kombiniert mit Funktionsparametern ermöglicht dies flexible Slice-Handhabung.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
fn sum_first_three(arr: &[i32]) -> Option<i32> {
match arr {
[a, b, c, ..] => Some(a + b + c),
_ => None,
}
}
 
fn main() {
let nums = [1, 2, 3, 4, 5];
println!("{:?}", sum_first_three(&nums));
}
Erklärung
1
[a, b, c, ..]
Bindet erste drei Elemente, ignoriert Rest mit ..
2
arr: &[i32]
Funktion akzeptiert eine Slice-Referenz, kein eigenes Array