Rust1 Getting Started & Programming a Guessing Game

Rust学习笔记

Rust编程语言入门教程课程笔记

参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)

Lecture 1: Getting Started

hello_world.rs

fn main(){
    println!("Hello World!"); // "!" means "println!" is a rust macro
}

// compile: rustc hello_world.rs
// run: ./hello_world

hello_cargo.rs

fn main() {
    println!("Hello, cargo!");
}


//new project: cargo new hello_cargo
//src: main.rs 
//cargo.toml: project metadata
//check: cargo check
//build: cargo build -> target/debug/hello_cargo
//build: cargo build --release -> target/release/hello_cargo
//run: cargo run

Lecture 2: Programming a Guessing Game

use std::io; //io library
use std::cmp::Ordering; //cmp method
use rand::Rng; //rand library

fn main() {

    let secret_number = rand::thread_rng().gen_range(1..=100); //gen_range method of rand::thread_rng()
    println!("Guess the number!");
    
    loop {

        println!("Please input your guess.");

        let mut guess = String::new(); //String type is in prelude
        //guess is a mutable variable

        io::stdin() //io library
            .read_line(&mut guess) //read_line returns a value of type io::Result
            .expect("Failed to read line"); //expect method of io::Result

        //io.Result is an enum
        //io.Result has variants: Ok and Err
        //Ok: the value inside is the result of the successful operation
        //Err: the value inside is the Err infomation

        let guess:u32 = match guess.trim().parse(){//shadowing
            Ok(num) => num,
            Err(_) => continue,
        };
        

        println!("You guessed: {}", guess);

        match guess.cmp(&secret_number) { //cmp method of the type String
            //cmp method compares two values and can be called on anything that can be compared
            //cmp method returns a variant of Ordering enum
            //Ordering enum has variants: Less, Greater, Equal
            Ordering::Less => println!("Too small!"),
            Ordering::Greater => println!("Too big!"),
            Ordering::Equal => {
                println!("You win!");
                break;
            }
        }

    }
    
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值