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!("相同"),
    };
}
相关推荐
六毛的毛2 分钟前
hot100 python解法合集
开发语言·python
学嵌入式的小杨同学4 分钟前
【嵌入式 C 语言实战】手动实现字符串四大核心函数(strcpy/strcat/strlen/strcmp)
c语言·开发语言·前端·javascript·数据结构·数据库·算法
拾贰_C6 分钟前
[python | numpy] numpy& matplotib冲突
开发语言·python·numpy
TRACER~8512 分钟前
python+adb的零碎记录
开发语言·python·adb
二十雨辰13 分钟前
[python]-快速入门
开发语言·python
2501_9419820515 分钟前
企业微信外部群消息推送的“工程化”方案
开发语言·mysql·php
C系语言16 分钟前
Python环境检查cuda可用性
开发语言·python
木风小助理21 分钟前
Kotlin内联函数及其关联关键字的深度解析
android·java·开发语言
刘一说25 分钟前
Java语言多态特性在Spring Boot中的体现:从原理到实战
java·开发语言·spring boot
郑州光合科技余经理30 分钟前
同城O2O系统架构解析:中台化如何赋能本地生活服务
java·开发语言·javascript·人工智能·系统架构·php·生活