Rust学习笔记1

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

fn main() {
    let guess = rand::thread_rng().gen_range(1, 101);//生成随机数1~100,含左不含右
    loop {
        let mut input = String::new();//听说没有gc的语言字符串是个大坑
        println!("请输入你猜的数字。");
        io::stdin().read_line(&mut input).expect("读取错误");//读取输入
        let input: u32 = match input.trim().parse() {//转换为数字
            Ok(num) => num,
            Err(_) => {
                println!("请输入数字!");
                continue;
            },
        };
        println!("输入数字:{}", input);
        match input.cmp(&guess) {//模式匹配,目前还没看出和switch比有什么优点
            Ordering::Equal => {
                println!("猜对了!");
                break;
            }
            Ordering::Greater => println!("高了"),
            Ordering::Less => println!("低了"),
        }
    }
}

对比C#,

1.use相当于using,引用各种库。

2.let有点像var,都可以推断类型,但是let可以声明类型,var只能推断。

3.符号::和.目前还没有介绍用法,看的有点乱。

4.符号&是引用,等后面介绍吧。

5.模式匹配,C#好像新版本也有了,不过目前没用到,现在感觉有点怪怪的。

6.符号println!是个宏,记下来等后面解释吧。

这段代码大概相当于c#里这样的:

Rust学习笔记1
 1 using System;
 2 
 3 namespace ConsoleApp1
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.WriteLine("请输入你猜的数字。");
10             int guess = new Random().Next(1, 101);
11             while (true)
12             {
13                 string input = Console.ReadLine();
14                 if (int.TryParse(input, out int num))
15                 {
16                     if (num > guess)
17                     {
18                         Console.WriteLine("高了");
19                     }
20                     else if (num < guess)
21                     {
22                         Console.WriteLine("低了");
23                     }
24                     else
25                     {
26                         Console.WriteLine("猜对了!");
27                         break;
28                     }
29                 }
30                 else
31                 {
32                     Console.WriteLine("请输入数字!");
33                     continue;
34                 }
35             }
36 
37         }
38     }
39 }
View Code

这是学习《Rust编程语言》第二章的内容记录

上一篇:Day 3 第一个python


下一篇:猜数字游戏Python