• 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#里这样的:

     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编程语言》第二章的内容记录

  • 相关阅读:
    代理(reGeorg)
    弱口令爆破技巧
    无法解析@NotBlank
    LC 1723. Find Minimum Time to Finish All Jobs (dp+二分)
    帝国cms 联合多张表查询
    php 根据白名单替换字符转中的链接 封装的函数
    php 正则匹配域名后的整个链接和只匹配域名
    JVM系列(一):垃圾回收之MinorGC,MajorGC和FullGC的区别
    spring事务的执行原理
    java基础系列(八):Semphore,CountDownLatch和CyclicBarrier的使用
  • 原文地址:https://www.cnblogs.com/fengbol/p/13579828.html
Copyright © 2020-2023  润新知