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