rust入门案例-猜数字游戏

rust 入门案例 猜数字游戏

最近,新学习了一门编程语言,叫做 rust

先不管语法,语义,规范...

安装完毕开发环境以后,先整上 入门案例 猜数字游戏。

一、看看整体的效果

第01节 案例代码

案例代码

复制的代码

rust 复制代码
// 需要导入三个包 1、标准输入 2、随机数  3、数学比较
use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main(){
    // 产生随机数
    let secret_number = rand::rng().random_range(1..=100);
    // 标题
    println!("欢迎来到猜数字游戏 {secret_number}");
    // 循环操作
    loop{
        // 输入提示
        println!("请输入 您心中理想的数字: ");
        let mut input_number = String::new();
        io::stdin().read_line(&mut input_number).expect("您输入的数据有误!");
        // 转换数据类型
        let input_number :u32 = match input_number.trim().parse(){
            Ok(input_number) => input_number,
            Err(_) => continue,
        };
        // 比较数据
        match secret_number.cmp(&input_number) {
            Ordering::Less => println!("太大了"),
            Ordering::Greater => println!("太小了"),
            Ordering::Equal => {
                println!("恭喜你, 猜对了");
                break;
            },
        };
    }
}

第02节 运行的效果

两个命令操作

复制代码
// 编译的命令
cargo   build

// 运行的命令
cargo   run

查看运行的效果

第03节 非标准包需要导入

在导入的三个包当中,随机数 是属于非标准的包,需要在 toml 文件中,添加。

其中 toml 文件内容如下:

tomal 复制代码
[package]
name = "gussesNumber"
version = "0.1.0"
edition = "2024"

[dependencies]
rand = "0.9.0"

截图内容

第04节 FAQ

这里主要是第一个入门级案例,没有介绍什么是 toml 文件,以及编译的环境等。

主要是记录一下,基础的运行效果,和 快速入门案例。

如果感觉学习难度较大,可以分步骤拆解练习咯

二、拆解练习

第01节 输入数据

代码

rust 复制代码
// 输入数据
use std::io; 

fn main(){
 
    // 输入提示
    println!("请输入 您心中理想的数字: ");

    // 创建字符串
    let mut input_number = String::new();

    // 输入数据
    io::stdin().read_line(&mut input_number).expect("您输入的数据有误!");

    // 输出结果
    println!("您输入的数据是 {input_number}");
}

第02节 类型转换

代码

rust 复制代码
fn main(){
 
    let number1 = 14;
    let number2 = "15";
    // 转换数据类型
    let number2 :u32 = match number2.trim().parse(){
        Ok(number2) => number2,
        Err(_) => 0,
    };
    // 计算加法
    let sum = number1 + number2;

    // 输出结果
    println!("结果是 {sum}");
}

第03节 产生随机数

代码

rust 复制代码
// 需要导入随机数
use rand::Rng;

fn main(){
    // 产生随机数
    let secret_number = rand::rng().random_range(1..=100);
    // 输出结果
    println!("产生的随机数是 {secret_number}");
}

第04节 比较两个数

代码

rust 复制代码
// 需要导入数学比较
use std::cmp::Ordering;

fn main(){

    let number1 = 14;
    let number2 = 16;

    // 比较数据
    match number1.cmp(&number2) {
        Ordering::Less => println!("太大了"),
        Ordering::Greater => println!("太小了"),
        Ordering::Equal =>  println!("相同"),
    };
}
相关推荐
Wang's Blog20 分钟前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方1 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php
沫璃染墨2 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
刚入门的大一新生2 小时前
Linux-线程互斥
java·开发语言
香芋芋圆2 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
怪我冷i3 小时前
Rust 智能指针 RefCell<T> 与内部可变性模式
rust
小熊恋旧3 小时前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
云边云科技_云网融合3 小时前
面向汽车零部件制造业场景的解决方案 | 70 秒:一台车下线的时间里,藏着五张网
开发语言·汽车·php
Evand J3 小时前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
will_net3 小时前
apollo 站点部署&C#接入
开发语言·c#·apollo