capypad
0 Tage Serie
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
rust
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 inference
let add = |a, b| a + b;
println!("5 + 3 = {}", add(5, 3));
// Closure with explicit types
let multiply = |x: i32, y: i32| -> i32 { x * y };
println!("6 * 7 = {}", multiply(6, 7));
// Closure that captures environment
let factor = 10;
let scale = |val| val * factor;
println!("5 scaled by {} = {}", factor, scale(5));
// Using closures with iterators
let 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