【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 中的高阶函数和函数式的编程风格。

附录

posted @ 2021-12-03 20:40  波尔  阅读(208)  评论(0编辑  收藏  举报