如下示例:优雅的函数链式调用
fn is_odd(n:u32) -> bool { 1 == n%2 } fn main() { println!("求1000以下所有奇数平方和。"); let upper = 1000u32; let mut acc = 0u32; for n in 0..{ let n_square = n*n; if n_square >=upper{ break; }else if is_odd(n_square){ acc += n_square; } } println!("命令式风格写法的结果:{}",acc); let sum_of_square_odd:u32 = (0..).map(|n|n*n) .take_while(|&n|n<upper) .filter(|&n|is_odd(n)) .fold(0, |acc2,i|acc2 + i); println!("函数式风格写法的结果:{}",sum_of_square_odd); println!("求1000以下所有偶数平方和。"); let sum_of_square_even:u32 = (0..).map(|m|m * m) .take_while(|&m|m<upper) .filter(|&m|m%2 ==0) .sum::<u32>(); println!("函数式风格写法的结果:{}",sum_of_square_even); }