• Rust 迭代器与闭包与高阶函数


    迭代器与闭包

    fn main() {
        let vec_1 = vec![1, 2, 3,4,5];
        let vec_2 = vec!["a","b","c","d","e"];
    
        //对vec的`iter()`举出`i32`,(通过用`x`匹配)把它解构成`i32`。
        //对vec的`into_iter()`举出`i32`类型。无需解构。
        println!("是否有能整除2的数:{}",vec_1.iter().any(|x| x%2 ==0));
        println!("查找该向量中是否有c ={}",vec_2.into_iter().any(|x|x==String::from('c')));
    
    
        //对数组的`iter()`与`into_iter()`都是举出`i32`。
        let array1 = [1,2,3,4,5,6];
        let array2 = [11,12,13,14,15,16];
        println!("是否有能被3整除的数:{}",array1.iter().any(|x|x%3 ==0));
        println!("是否有能被5整除的数:{}",array2.into_iter().any(|x|x%5 ==0));
    
    
        // 查找迭代器(与iter().any()迭代器类似),返回Option()。
        println!("查询能被3整除的数:{:?}",array1.iter().find(|x|x%3 ==0)); //返回第一个符合条件的数
    
    }
    
    // 是否有能整除2的数:true
    // 查找该向量中是否有c =true
    // 是否有能被3整除的数:true
    // 是否有能被5整除的数:true
    // 查询能被3整除的数:Some(3)
    

    迭代器与闭包与高阶函数

    如下示例:优雅的函数链式调用

    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|nupper)
                .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|mupper)
                .filter(|m|m%2 ==0)
                .sum::u32();
        println!("函数式风格写法的结果:{}",sum_of_square_even);
    }
  • 相关阅读:
    How to using X++ code achieve copying records
    How to using x++ code achieve Lookup files list with entire folder
    Using X++ code create and Read XML file.
    Using X++ Code Create master table form
    When you are finished renamed the Item number Jobs
    Visual Studio.NET 简介
    Visual C++中的异常处理浅析
    最常见的20种VC++编译错误信息
    开发WDM型的USB设备驱动程序
    C++中内存管理
  • 原文地址:https://www.cnblogs.com/dream397/p/14190691.html
Copyright © 2020-2023  润新知