zoukankan      html  css  js  c++  java
  • Rust简单demo

    Rust基础学习:

      Rust的学习门槛是比较低的,最起码的官网支持所有语言,而且《Rust程序设计》这门基础入门书记在GitBook上也是能找到的,这里就不赘述了,书的学习地址:https://legacy.gitbook.com/book/kaisery/trpl-zh-cn/details

    Rust实例:

      1. 输入输出demo:

    use std::io;
    
    // 输入输出demo
    fn main() {
        // 这里添加!是因为调用的是系统宏,如果是自己写的函数是不需要!
        println!("Hello, world!");
        println!("Please input your guess: ");
        
        let mut guess = String::new();
        // 使用了std库来读取数据到guess可变变量中
        io::stdin().read_line(&mut guess)
            .expect("Failed to read line"); // 这里使用read_line会返回一个io::Result对象(OK,Err)
            // 需要判断后处理,不然会抛错,也就是说必须执行异常处理。
        
        println!("You guessed: {}",guess)
    }
    

      2. 使用crate(rust的代码包),来增加第三方功能,下面引用第三方的rand包,随机生成数字,然后和我们猜的进行比较。

    use std::io;
    // 需要在Cargo.toml中依赖中添加rand="0.5.5"
    use rand::Rng;
    
    // 输入输出demo
    fn main() {
        // 这里添加!是因为调用的是系统宏,如果是自己写的函数是不需要!
        println!("Hello, world!");
        println!("Please input your guess.");
        
        let mut guess = String::new();
        // 使用了std库来读取数据到guess可变变量中
        io::stdin().read_line(&mut guess)
            .expect("Failed to read line"); // 这里使用read_line会返回一个io::Result对象(OK,Err)
            // 需要判断后处理,不然会抛错,也就是说必须执行异常处理。
    
            
        // 生成随机数
        let secret_number = rand::thread_rng().gen_range(1,101);
        println!("The secrect number is {}",secret_number);
        println!("You guessed: {}",guess)
    }
    

      3. 完整的demo例子

    use std::io;
    // 需要在Cargo.toml中依赖中添加rand="0.5.5"
    use rand::Rng;
    use std::cmp::Ordering;
    
    // 输入输出demo
    fn main() {
        // 这里添加!是因为调用的是系统宏,如果是自己写的函数是不需要!
        println!("Hello, world!");
        
        // 生成随机数
        let secret_number = rand::thread_rng().gen_range(1,101);
        println!("The secrect number is {}",secret_number);
    
        loop {
            println!("Please input your guess.");
            let mut guess = String::new();
            // 使用了std库来读取数据到guess可变变量中
            io::stdin().read_line(&mut guess)
                .expect("Failed to read line"); // 这里使用read_line会返回一个io::Result对象(OK,Err)
                // 需要判断后处理,不然会抛错,也就是说必须执行异常处理。
            
            // 转换成数字, 支持隐藏覆盖功能shadowing
            let guess:u32 = guess.trim().parse()  // parse 会根据:u32判断出要转换成的类型
                //.expect("Please type a number"); // 转换也可能出错所以需要使用判断std::Result
                {
                    Ok(num) => num,
                    Err(_) => continue,   // 输入错误后可以继续
                }
    
            println!("You guessed: {}",guess);
        
            // 使用match来多路选择
            match guess.cmp(&secret_number) {
                Ordering::Less => println!("Too small"),
                Ordering::Greater => println!("Too big"),
                Ordering::Equal => {
                    println!("You win");
                    break;
                }
            }
        }
    }
  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/double-W/p/13065220.html
Copyright © 2011-2022 走看看