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;
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM