rust / beginner
Snippet
Schließungen (Closures) in Rust
Schließungen sind anonyme Funktionen, die ihre Umgebung erfassen können. Sie werden mit Pipe-Syntax |x| definiert. Im Gegensatz zu normalen Funktionen können Schließungen Parametertypen ableiten. Methoden wie fold() kombinieren alle Elemente mit einer Schließung und demonstrieren funktionale Programmiermuster in Rust.
snippet.rs
1
2
3
4
5
6
7
8
9
10
fn main() {let add = |x: i32, y: i32| -> i32 { x + y };let multiply = |x, y| x * y;println!("Add: {}", add(3, 4));println!("Multiply: {}", multiply(5, 6));let numbers = vec![1, 2, 3, 4, 5];let sum = numbers.iter().fold(0, |acc, x| acc + x);println!("Sum: {}", sum);}
Erklärung
1
|x: i32, y: i32| -> i32 { x + y }
Schließung mit expliziten Parameter- und Rückgabetypen
2
|x, y| x * y
Schließung mit abgeleiteten Typen (kürzere Syntax)
3
.fold(0, |acc, x| acc + x)
Reduziert Vektor auf einzelnen Wert durch Akkumulieren mit Schließung