1.1 KiB
1.1 KiB
Rust 11: Iteratoren & Closures
Tauche ein in die funktionale Welt von Rust: Closures, Environment Capturing und Zero-Cost Iterator-Pipelines.
🎯 Lernziele
- Closures: Syntax
|args| bodyund Environment-Capturing viaFn,FnMutundFnOnce. - Move-Semantik: Variablen-Besitz in Closures mit dem Schlüsselwort
moveübertragen. - Eigene Iteratoren: Den
Iterator-Trait mittype Itemundfn next(&mut self)implementieren. - Adapter-Chaining:
.map(),.filter(),.fold(),.filter_map(),.zip(),.take()effizient verketten. - Zero-Cost Abstraction: Verstehen, warum funktionale Pipelines in Rust genauso schnell wie handgeschriebene for-Loops kompilieren.
💡 Schlüsselkonzepte
1. Custom Iterator
pub struct Fibonacci {
curr: u64,
next: u64,
}
impl Iterator for Fibonacci {
type Item = u64;
fn next(&mut self) -> Option<Self::Item> {
let current = self.curr;
self.curr = self.next;
self.next = current + self.next;
Some(current)
}
}
🧪 Tests ausführen
rustc --test test_aufgabe.rs && ./test_aufgabe