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!("相同"),
    };
}
相关推荐
一路向北he几秒前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
AI行业学习1 小时前
Notepad++ 官方下载 + 完整安装 + 全套优化配置(2026最新)
开发语言·人工智能·python·前端框架·html·notepad++
大圣编程2 小时前
Python中continue语句的用法是什么?
开发语言·前端·python
upgrador3 小时前
基础知识:C++ STL构造函数的左闭右开惯例及其实现原理
开发语言·c++
yoothey3 小时前
报废审批流规则引擎设计——责任链模式完整实现
linux·开发语言·bash
geovindu4 小时前
python: Functional Options Pattern
开发语言·后端·python·设计模式·惯用法模式·函数式选项模式
wuyk5554 小时前
24. C 语言模块化:不是拆几个.c 文件那么简单
c语言·开发语言·stm32·单片机
doiito(Do It Together)4 小时前
media_agent 进化之路:把 Gliding Horse 的 Agent 超能力注入 ComfyUI,让图片生成自己“学会”优化
人工智能·架构·rust·knowledge graph
凯瑟琳.奥古斯特5 小时前
K次取反最大化数组和解法(力扣1005)
开发语言·c++·算法·leetcode·职场和发展
AC赳赳老秦5 小时前
防火墙规则批量配置实战:OpenClaw 自动生成模板、批量下发与合规性校验全解析
java·开发语言·人工智能·python·github·php·openclaw