【Rust】高阶函数
环境
- Rust 1.56.1
- VSCode 1.61.2
概念
参考:https://doc.rust-lang.org/stable/rust-by-example/fn/hof.html
示例
Rust 提供了高阶函数(Higher Order Function, HOF),指的是那些通过一个或者多个函数产生更有用的函数。高阶函数和惰性迭代赋予 Rust 函数式风格。
普通风格
fn is_odd(n: u32) -> bool {
n % 2 == 1
}
fn main() {
let upper = 1000;
let mut acc = 0;
for n in 0.. {
let n_squared = n * n;
if n_squared >= upper {
break;
} else if is_odd(n_squared) {
acc += n_squared;
}
}
println!("imperative style: {}", acc);
}
函数风格
fn main() {
let upper = 1000;
let sum: u32 = (0..)
.map(|n| n * n)
.take_while(|&n| n < upper)
.filter(|&n| n % 2 == 1)
.sum();
println!("functional style: {}", sum);
}
总结
了解了 Rust 中的高阶函数和函数式的编程风格。