mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-22 11:36:23 +00:00
683 B
683 B
date | id | title |
---|---|---|
20200923 | 8353cf5c-2d2d-480a-b957-0e90da847e1c | Rust Closures |
Syntax
Long
fn main() {
let double_closure = |num: u32| -> u32 { 2 * num };
println!("2 times 3 = {}", double_closure(3));
}
Abbreviated
fn main() {
let double_closure = |num| 2 * num;
println!("2 times 3 = {}", double_closure(3));
}
Closure variable scope
Unlike Rust functions Closures can capture their environment and access variables from the scope in which they're defined:
fn main() {
let x = 4;
let equal_to_x = |z| z == x;
let y = 4;
assert!(equal_to_x(y));
}