zoukankan      html  css  js  c++  java
  • 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编程语言》第二章的内容记录

  • 相关阅读:
    Spring框架——JdbcTemplate(Spring对Jdbc的封装)
    Spring框架——批处理(batch)和事务(Transaction)
    Spring框架——AOP(面向切面编程)详解
    Spring框架——关于IOC容器和注解的36个小实验
    学习新技术的 10 个建议
    解决 PHP Fatal error: Call-time pass-by-reference has been removed
    mysql下float类型使用一些误差详解
    windows 如何查看端口占用情况
    插件机制
    .net/c#常用框架/中间件简介
  • 原文地址:https://www.cnblogs.com/fengbol/p/13579828.html
Copyright © 2011-2022 走看看