RUST入门 - Prelude & 变量,常量,变量遮蔽

 Standard library & Prelude

Rust默认的标准库包含很多内容,其中prelude是自动导入的部分,是每个Rust程序都包含的标准库部分。Prelude

变量variables 

        可变变量(mutable) let mut 

        不可变变量( immutable)默认  let

常量Constants

        const

变量遮蔽

  

//Rust默认的标准库包含很多内容,其中prelude是自动导入的部分,每个Rust程序都包含的标准库部分。
use rand::Rng;
use std::cmp::Ordering;
use std::io;

fn main() {

    // 常量的定义用cost;
    // 必须标注类型;
    // 常量在程序运行的整个时间内有效,在声明它们的作用域内有效。
    // const可以在全局作用域中使用,而let只能在函数中使用
    const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;

    //<-- shadowing 变量遮蔽,每次重新用let来定义相同的变量名;
    // 结束作用域后返还;
    // 定义新的遮蔽变量可以是不同数据类型;
    let x = 5;
    let x = x + 1;
    {
        let x = x * 2;
        println!("The value of x in the inner scope is: {x}");
    }
    println!("The value of x is: {x}");
    //--> shadowing 变量遮蔽

    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1..=100);

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

        // 默认变量是不可变的(immutable);
        // 使用mut关键字使变量成为可变变量;
        // 不能给immutable变量赋值两次;
        let mut guess = String::new();

        io::stdin()
            .read_line(&mut guess)
            .expect("Failed to read line");

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

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

        match guess.cmp(&secret_number) {
            Ordering::Less => println!("Too small!"),
            Ordering::Greater => println!("Too big!"),
            Ordering::Equal => {
                println!("You win!");
                break;
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值