Rust-获取随机数练习案例

news2024/10/6 12:31:24

文章目录

  • 前言
  • 一、取官网示例猜数字游戏玩一玩
    • cargo check
    • TOML文件
  • 二、完整代码
  • 总结


前言

Rust学习系列-获取随机数练习案例,基于cargo 进行案例练习,过程中会使用cargo check; cargo run;等命名,同时了解基础的let ,mut ,io,rang 库等;如何添加依赖,排除报错。🚀


一、取官网示例猜数字游戏玩一玩

我们故意不加依赖,运行 **cargo check **

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1..101);

    println!("The secret number is: {}", secret_number);

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin()
        .read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

cargo check

cargo check 是一个 Rust 语言的命令行工具,用于快速检查项目的语法错误和类型错误,而无需进行编译和构建整个项目。

使用 cargo check 可以加快错误检查的速度,因为它只进行语法和类型检查,并不会生成可执行文件或库。这样可以在编写代码的过程中及时捕捉到可能的错误,而无需等待编译和构建的时间。

与 cargo build 不同的是,cargo check 不会生成可执行文件或库,因此它更适合用于快速检查代码,而不是进行最终的编译和构建。它通常用于开发过程中,在运行测试或调试代码之前进行快速检查,以确保代码的正确性。

要使用 cargo check,只需在项目根目录下运行命令:cargo check。它会检查项目中的所有文件,并输出可能的错误信息和建议。

总结起来,cargo check 是一个可以快速检查 Rust 项目的语法和类型错误的命令行工具,它提供了一种快速检查代码错误的方式,无需进行完整的编译和构建过程。它在开发过程中很有用,可以及时发现问题并进行修复。

不出所料,缺少依赖。那么依赖怎么加呢?
在这里插入图片描述
就在这个后缀.toml, 提示一个× 还写着0.8.5 那就改为 0.85 结果不报错了。
在这里插入图片描述

TOML文件

后缀为.toml的文件是一种配置文件,使用TOML(Tom’s Obvious, Minimal Language)语法来表示和存储配置信息。TOML是一种易于阅读和编写的配置文件格式,旨在成为几乎所有编程语言中的通用配置格式。

TOML文件的结构相对简单,由键值对组成,可以使用基本数据类型(如字符串、整数、浮点数)来表示值,还可以使用表(table)来表示嵌套和分组的配置。

.TOML文件的优势包括:

  1. 易于阅读和编写:TOML文件采用类似INI文件的格式,非常易于理解和修改。

  2. 通用性:TOML可以在多种编程语言中使用,因此可以在不同的项目和系统中共享和重用配置。

  3. 嵌套和分组:TOML文件支持嵌套和分组的配置,可以更好地组织和管理配置信息。

  4. 注释:TOML文件支持注释,可以在配置文件中添加说明和备注。

  5. 类型推断:TOML文件可以根据值的格式自动推断数据类型,无需显式指定类型。

TOML文件通常用于配置应用程序、服务器和各种软件工具的设置。它提供了一种简单且易于理解的方式来定义和管理各种配置选项。

其中,我们用到io,点击报错提示如下,还给了解决方案。
use std::io
在这里插入图片描述
类似我们根据报错引入依赖。 cargo check 通过后,我们cargo run 就运行程序。
成功获取一个随机数🌲 ✌🏻

在这里插入图片描述

二、完整代码

use std::io;
use rand::Rng;
fn main() {
    
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1..10000);

    println!("The secret number is: {}", secret_number);

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin()
        .read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
    
}

总结

基于cargo 进行获取随机数的案例练习,过程中会使用cargo check; cargo run;等命名,同时了解基础的let ,mut ,io,rang 库等;如何添加依赖,排除报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1436029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java EE】----Bean的作用域和生命周期

1.Bean的作用域 定义:Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式,⽐如 singleton 单例作⽤域,就 表示 Bean 在整个 Spring 中只有⼀份 (产生的原因,Bean 默认情况下是单例状态(singleton&…

2024数据分析管理、数字经济与教育国际学术会议(ICDAMDEE2024)

会议简介 2024年数据分析管理、数字经济和教育国际学术会议(ICDAMDEE 2024)将在武汉举行。会议不仅展示了来自世界各地的研究专家围绕数据分析管理、数字经济和教育的最新科研成果,还为来自不同地区的代表们提供了面对面的交流意见和实验经验…

编程实例分享,宠物诊所电子处方怎么开,兽医电子处方模板电子版操作教程

编程实例分享,宠物诊所电子处方怎么开,兽医电子处方模板电子版操作教程 一、前言 以下操作教程以 佳易王兽医电子处方软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、在系统 设置里可以设置打印参数&#x…

【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(2)

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

【Spring】Spring事务和事务传播机制

文章目录 什么是事务事务的操作Spring 中事务的实现Spring编程式事务Spring 声明式事务 TransactionalTransactional作用Transactional 详解rollbackFor事务隔离级别Spring 事务隔离级别Spring 事务传播机制 什么是事务 事务(Transaction)是一个程序中一…

最新的 Ivanti SSRF 零日漏洞正在被大规模利用

Bleeping Computer 网站消息,安全研究员发现 Ivanti Connect Secure 和 Ivanti Policy Secure 服务器端请求伪造 (SSRF) 漏洞(CVE-2024-21893 )正在被多个威胁攻击者大规模利用。 2024 年 1 月 31 日,Ivanti 首次就网关 SAML 组件…

Vivado-IP核

Vivado-IP核 主程序 timescale 1ns / 1ps ////module ip_clk_wiz(input sys_clk,input sys_rst_n,output clk_out1,output clk_out2,output clk_out3,output clk_out4,output locked);clk_wiz_0 instance_name(// Clock out ports.clk_out1(clk_out1), // output clk_out…

java设计模式- 建造者模式

一 需求以及实现方式 1.1 需求描述 我们要创建一个表示汽车的复杂对象,汽车包含发动机、轮胎和座椅等部分。用传统方式创建,代码如下 1.2 传统实现方式 1.抽象类 public abstract class BuildCarAbstaract {//引擎public abstract void buildEng…

OpenGL 入门(十)— 光照系统

光照系统 前言平行光点光源衰减衰减的实现 聚光平滑/软化边缘 多光源 前言 介绍三种光源类型:平行光(Directional Light)、点光源(Point Light)、聚光灯(Spot Light)。 平行光(Directional Light):只有一…

【力扣】整数反转,判断是否溢出的数学解法

整数反转原题地址 方法一:数学 反转整数 如何反转一个整数呢?考虑整数操作的3个技巧: xmod10可以取出x的最低位,如x123,xmod103。x/10可以去掉x的最低位,如x123,x/10,x12。xx*10…

C# CAD交互界面-自定义面板集(四)

运行环境 vs2022 c# cad2016 调试成功 一、程序说明 创建自定义面板集(PaletteSet)的C#命令方法实现。该方法名为CreatePalette,当在AutoCAD环境中调用此命令时,会执行以下操作: 获取AutoCAD主应用对象&#xff1…

docer compose部署simple-docker

简介 一个看似简陋但是功能足够用的docker管理工具 安装 创建目录 mkdir -p /opt/simple-docker cd /opt/simple-docker 创建并启动容器 编写docker-compose.yml文件,内容如下 version: 3 services: redis: image: redis:latest restart: always web: image: registry.cn-…

APP攻防-资产收集篇FridaHOOKXposed证书提取单向双向检验抓包mobsf

知识点 1、单向校验-XP框架&Frida&HOOK 2、双向校验-Frida&HOOK&导入证书 一、演示案例-APP-综合分析-Mobexler&MobSF识别 mobsf 移动安全框架 (MobSF) 是一种自动化的一体化移动应用程序 (Android/iOS/Windows) 渗透测试、恶意软件分析和安全评估框架…

Elasticsearch:BM25 及 使用 Elasticsearch 和 LangChain 的自查询检索器

本工作簿演示了 Elasticsearch 的自查询检索器将非结构化查询转换为结构化查询的示例,我们将其用于 BM25 示例。 在这个例子中: 我们将摄取 LangChain 之外的电影样本数据集自定义 ElasticsearchStore 中的检索策略以仅使用 BM25使用自查询检索将问题转…

Fate-Serving推理服务源码解读

https://fate-serving.readthedocs.io/en/develop/?queryguest 什么是Fate-Serving fate-serving是FATE的在线部分,在使用FATE进行联邦建模完成之后,可以使用fate-serving进行包括单笔预测、多笔预测以及多host预测在内的在线联合预测。 模型的初始化流…

用友U8 Cloud ReportDetailDataQuery SQL注入漏洞复现(QVD-2023-47860)

0x01 产品简介 用友U8 Cloud 提供企业级云ERP整体解决方案,全面支持多组织业务协同,实现企业互联网资源连接。 U8 Cloud 亦是亚太地区成长型企业最广泛采用的云解决方案。 0x02 漏洞概述 用友U8 cloud ReportDetailDataQuery 接口处存在SQL注入漏洞,攻击者未经授权可以访…

adb push 将电脑中的文件传输到安卓开发板

1. adb remount 重新挂载设备的文件系统,以便可以对设备进行读写操作,通常情况下,安卓开发板在连接到计算机后,设备的文件系统会被挂载为只读文件系统,重新挂载后变成可读可写权限 C:\Users\Administrator>adb re…

C++ 动态规划 区间DP 石子合并

设有 N 堆石子排成一排,其编号为 1,2,3,…,N 。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻…

第三讲 多重背包问题①——转化

【题目来源】AcWing 4. 多重背包问题 I 【题意分析】和完全背包问题类似,但是区别在于每一种物品的数量是有限的。 【解决方法】 1.转化为 0 / 1 0/1 0/1 背包问题 因为每一种物品数量有限,所以将每个物品看作单独的种类,可转化为 0 / 1 0/…

Spring Data Envers 数据审计实战2 - 自定义监听程序扩展审计字段及字段值

上篇讲述了如何在Spring项目中集成Spring Data Envers做数据审计和历史版本查看功能。 之前演示的是业务表中已有的字段进行审计,那么如果我们想扩展审计字段呢? 比如目前对员工表加入了Audited审计,员工表有个字段为dept_id,为…