rust / beginner
Snippet
Closures: Anonyme Funktionen in Rust
Closures sind anonyme Funktionen, die du Variablen zuweisen oder an Funktionen übergeben kannst. Sie können Parameter- und Rückgabetypen automatisch ableiten, oder du kannst sie explizit annotieren. Closures können Variablen aus ihrem umgebenden Scope erfassen, was für benutzerdefinierte Operationen nützlich ist. Sie werden häufig mit Iterator-Methoden wie map, filter und collect verwendet.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fn main() {// Basic closure with type inferencelet add = |a, b| a + b;println!("5 + 3 = {}", add(5, 3));// Closure with explicit typeslet multiply = |x: i32, y: i32| -> i32 { x * y };println!("6 * 7 = {}", multiply(6, 7));// Closure that captures environmentlet factor = 10;let scale = |val| val * factor;println!("5 scaled by {} = {}", factor, scale(5));// Using closures with iteratorslet numbers = vec![1, 2, 3, 4, 5];let doubled: Vec<i32> = numbers.iter().map(|x| x * 2).collect();println!("Doubled: {:?}", doubled);}
Erklärung
1
let add = |a, b| a + b;
Einfache Closure, die Typen aus der Verwendung ableitet
2
let multiply = |x: i32, y: i32| -> i32 { x * y }
Closure mit expliziten Typ-Annotationen
3
let scale = |val| val * factor;
Closure erfasst factor aus dem äußeren Scope
4
numbers.iter().map(|x| x * 2).collect()
Verkettung von Iterator-Methoden mit Closures