Rust 学习(一)官方文档 猜数字游戏 新手必看

Rust 官方文档的 猜数字游戏 新手必看,我觉得学一门语言最重要的是先从简单的例子入手,触类旁通。

use rand::Rng;
use std::cmp::Ordering;
use std::io;

fn main() {
    println!("Guess the number!");

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

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

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

学习笔记

1.rust变量默认是常量如 let number ,加了mut就是变量 如 let mut guess

2.rust允许不显式声明变量类型,也就是说,编译器能推断出来类型,就不用写类型,如

let mut guess = String::new();

等价于

let mut guess: String = String::new(); 

其实我觉得这不是好事,某种程度上偷懒,这样阅读别人的代码会更费力

3.类型写后面干什么啊... 声明整数  let secret_number: u32 不能照着其他语言一样写前面吗,你整个let来声明变量不是多此一举,直接像C一样, int guess,又知道是整数 又知道是变量而不是函数... 引入了没用的fn 和let,我觉得这么设计语言不合理,虽然多写一步变量类型对 程序员“不友好”,但是对 程序 来说是友好的,提前知道了就不用去“猜”,不是更高效吗?后期review也更容易看得懂 

对了 函数返回值也是写名字后边 太抽象了...

4. 别的语言虽然很多关键词不一样,但是大体上是统一的,rust全自己重命名,switch -> match 诸如此类。

今天先这样

猜数字游戏 - Rust 程序设计语言 中文版 (rustwiki.org)

猜你喜欢

转载自blog.csdn.net/m0_52559040/article/details/131045991