【Rust入门】猜数游戏

文章目录

  • 前言
  • Rust的变量
  • Rust占位符
  • 读取一行数据到变量里面
  • 示例代码
  • 总结


前言

Rust是一种系统编程语言,它专注于速度、内存安全和并行性。学习Rust可以为你的编程技能库增添新的一笔。在这篇文章中,我们将通过一个简单的猜数游戏来介绍Rust的基本概念。这个游戏是一个很好的入门项目,因为它涉及到一些基本的编程概念,如变量、循环、输入/输出和条件语句。无论你是一位经验丰富的程序员,还是刚刚开始接触编程,我相信你都会从这个项目中学到一些有用的东西。


Rust的变量

变量可以被理解为一个存储信息的容器。你可以把它想象成一个储物箱,你可以在里面放东西(赋值),也可以从里面取东西(使用变量)。在编程中,我们使用变量来存储和操作数据。

在Rust中,你可以使用let关键字来定义一个变量。例如:

let x = 5;

这行代码定义了一个名为x的变量,并给它赋值为5。在Rust中,变量默认是不可变的,这意味着一旦一个变量被赋值,你就不能改变它的值。如果你想要一个可以改变的变量,你可以在let关键字前加上mut关键字。例如:

let mut y = 5;
y = 6; // 这是合法的,因为y是可变的

这段代码定义了一个可变的变量y,并首先将其设置为5,然后改变它的值为6。

Rust占位符

在Rust中,占位符主要用于格式化输出,特别是在打印变量值时。占位符被定义在一个字符串中,然后可以被变量的值替换。在Rust中,我们使用大括号 {} 作为占位符。

例如,如果你有一个变量 x 并想打印它的值,你可以这样做:

let x = 5;
println!("x的值是 {}", x);

在这个例子中,{} 是一个占位符,当 println! 函数运行时,它会被 x 的值替换,所以输出会是 “x的值是 5”。

此外,Rust的占位符还可以进行更复杂的操作,如指定宽度、精度和对齐方式等。例如:

println!("{:5}", 1);  // 输出 "    1",右对齐,宽度为5
println!("{:<5}", 1); // 输出 "1    ",左对齐,宽度为5
println!("{:.2}", 3.14159); // 输出 "3.14",保留两位小数

读取一行数据到变量里面

在Rust中,use关键字用于引入库或模块中的项。当你想要使用一个库或模块中的函数、结构体、枚举等时,你需要先用use关键字将它们引入到当前的作用域中。

例如,如果你想要使用标准库(std)中的io(io库是专门用于输入输出的),你可以这样做:

use std::io;fn main() {//.....
}

use关键字在Rust中起到了简化代码和提高可读性的作用。

read_line()函数:
read_line()是Rust中的一个函数,它用于从标准输入(通常是用户在命令行中的输入)读取一行文本。这个函数非常有用,比如在你需要从用户那里获取输入时。

read_line()函数需要一个参数,这个参数必须是一个可变引用到一个String。这个String将被用作一个缓冲区,read_line()会将用户的输入读取到这个String中。

下面是一个使用read_line()的例子:

use std::io;fn main() {let mut input = String::new();io::stdin().read_line(&mut input).expect("Failed to read line");println!("You entered: {}", input);
}

在这个例子中,我们首先创建了一个新的String,然后我们调用io::stdin().read_line(&mut input)来读取用户的输入。&mut input是一个指向input的可变引用(&mut表示后面的变量是可变的),这样read_line()就可以修改input的内容。如果读取成功,用户输入的内容就会被存储在input中。

expect("Failed to read line")是用来处理可能的错误的。如果read_line()因为某种原因失败了(比如无法读取输入),它会返回一个Err值。expect()会检查Result是否是Err,如果是,它就会停止程序运行,并显示提供给它的消息,即"Failed to read line"。

示例代码

use std::io;
use rand::Rng;fn main() {println!("Guess the number:");let mut guess = String::new();io::stdin().read_line(&mut guess).expect("Failed to read line");println!("You guessed: {}", guess);
}

总结

通过完成这个猜数游戏,我们已经对Rust有了一个基本的了解。我们学习了如何使用变量、循环、输入/输出和条件语句,这些都是编程的基本构建块。我们还看到了Rust如何处理错误,以及它如何强制我们写出内存安全的代码。虽然我们还有很多东西要学,但这个项目已经给我们提供了一个坚实的基础,我们可以在此基础上继续探索Rust的更多功能。记住,最好的学习方法就是动手实践。所以,不要停下来,继续探索Rust吧!

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

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

相关文章

VBA初学:零件成本统计之一(任务汇总)

经过前期一年多对金蝶K3生产任务流程和操作的改造和优化&#xff0c;现在总算可以将零件加工各个环节的成本进行归集了。 原本想写存储过程&#xff0c;通过直接SQL报表做到K3中去的&#xff0c;但财务原本就是用EXCEL&#xff0c;可以方便调整和保存&#xff0c;加上还有一部分…

便携式气象站:探索自然的智慧伙伴

在探索自然奥秘、追求科学真理的道路上&#xff0c;气象数据始终是我们不可或缺的指引。然而&#xff0c;传统的气象站往往庞大而笨重&#xff0c;难以在偏远地区或移动环境中灵活部署。 便携式气象站&#xff0c;顾名思义&#xff0c;是一种小巧轻便、易于携带和安装的气象观测…

模拟面试002-Java开发工程师+简历+问题+回答

模拟面试002-Java开发工程师简历问题回答 目录 模拟面试002-Java开发工程师简历问题回答面试简历面试官题问Java基础与编程框架与工具数据库与性能优化项目经验与实践团队合作与沟通 求职者回答Java基础与编程框架与工具数据库与性能优化项目经验与实践团队合作与沟通 参考资料…

由于找不到xinput1 3.dll无法继续执行重新安装程序

如果您的计算机提示无法找到xinput1_3.dll文件&#xff0c;这可能表明您的计算机存在问题。在这种情况下&#xff0c;您需要立即对xinput1_3.dll文件进行修复&#xff0c;否则您的某些程序将无法启动。以下是解决无法找到xinput1_3.dll文件的方法。 一、关于xinput1_3.dll文件的…

你要允许此应用对你的设备进行更改吗

在Windows 11中&#xff0c;当你看到提示“你要允许此应用对你的设备进行更改吗&#xff1f;”时&#xff0c;这是系统检测到某个应用或软件试图对你的设备进行更改或安装的提醒。这个提示是为了保护你的系统免受潜在恶意软件的侵害。如果你选择“是”&#xff0c;则应用可以继…

Elasticsearch 实现 Word、PDF,TXT 文件的全文内容提取与检索

文章目录 一、安装软件:1.通过docker安装好Es、kibana安装kibana:2.安装原文检索与分词插件:之后我们可以通过doc命令查看下载的镜像以及运行的状态:二、创建管道pipeline名称为attachment二、创建索引映射:用于存放上传文件的信息三、SpringBoot整合对于原文检索1、导入依赖…

安全及应用(更新)

一、账号安全 1.1系统帐号清理 #查看/sbin/nologin结尾的文件并统计 [rootrootlocalhost ~]# grep /sbin/nologin$ /etc/passwd |wc -l 40#查看apache登录的shell [rootrootlocalhost ~]# grep apache /etc/passwd apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin#改变…

Android增量更新----java版

一、背景 开发过程中&#xff0c;随着apk包越来越大&#xff0c;全量更新会使得耗时&#xff0c;同时浪费流量&#xff0c;为了节省时间&#xff0c;使用增量更新解决。网上很多文章都不是很清楚&#xff0c;没有手把手教学&#xff0c;使得很多初学者&#xff0c;摸不着头脑&a…

2011年的数字IC设计面经

2011年老罗写的面经&#xff0c;转眼间2024年了&#xff0c;大家凑合着看吧&#xff0c;可以顺便看看2011年的应届生薪资。 本人通信工程硕士&#xff0c;非电子科班出身&#xff0c;主要找数字IC设计的工作&#xff0c;找工作找了一个月左右&#xff0c;还算满意吧&#xff0…

边缘概率密度、条件概率密度、边缘分布函数、联合分布函数关系

目录 二维随机变量及其分布离散型随机变量连续型随机变量边缘分布边缘概率密度举例边缘概率密度 条件概率密度边缘概率密度与条件概率密度的区别边缘概率密度条件概率密度举个具体例子 参考资料 二维随机变量及其分布 离散型随机变量 把所有的概率&#xff0c;都理解成不同质量…

R迅速切换目录 -R语言002

实用小操作系列 R定位当前目录 getwd() [1] "/data/Rprofile1" #当前工作目录&#xff0c;因为他读取文件都是相对路径&#xff0c;进当前目录&#xff0c;一般不考虑绝对路径&#xff0c;写代码容易乱呀&#xff0c;切目录最简单完善 R切换工作目录 setwd(&q…

逻辑图框架图等结构图类图的高效制作方式不妨进来看看

**逻辑图框架图等结构图类图的高效制作方式不妨进来看看** 基于我们每天都在处理大量的数据和信息。为了更清晰地理解和传达这些信息&#xff0c;结构图、逻辑图和框架图等可视化工具变得越来越重要。然而&#xff0c;如何高效地制作这些图表并确保其准确性和易读性呢&#xf…

RedHat运维-LinuxSELinux基础4-端口绑定SELinux上下文

1. SELinux将一个_________与一个SELinux上下文相连接&#xff1b; 2. SSH协议将22/tcp端口与__________SELinux上下文相联系&#xff1b; 3. HTTP协议将80/tcp、443/tcp端口与____________SELinux上下文相联系&#xff1b; 4. 列出所有端口的SELinux上下文信息的方法是_______…

Mongodb索引简介

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第84篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

Windows密码凭证获取

Windows HASH HASH简介 hash &#xff0c;一般翻译做散列&#xff0c;或音译为哈希&#xff0c;所谓哈希&#xff0c;就是使用一种加密函数进行计算后的结果。这个 加密函数对一个任意长度的字符串数据进行一次数学加密函数运算&#xff0c;然后返回一个固定长度的字符串。…

常用字符集与乱码原因

1.ASCII字符集&#xff1a;仅对英文字符编码&#xff0c;每个字符用1B编码&#xff0c;7位二进制足以表示所有ASCII字符集&#xff0c;因此最高位始终为0 2.GBK字符集&#xff1a;GB2312字符集&#xff08;简体中文字符集&#xff09;BIG5字符集&#xff08;台湾地区繁体中文字…

服装购物商城系统小程序-计算机毕业设计源码35058

摘要 服装购物商城系统小程序&#xff0c;依托Spring Boot框架的强大支持&#xff0c;为用户呈现了一个功能丰富、体验流畅的在线购物平台。该系统不仅涵盖了商品展示、用户注册登录、购物车管理、订单处理、支付集成等核心购物流程&#xff0c;还引入了个性化推荐算法&#xf…

Jmeter使用JSON Extractor提取多个变量

1.当正则不好使时&#xff0c;用json extractor 2.提取多个值时&#xff0c;默认值必填&#xff0c;否则读不到变量

什么是集港‼️货代小白快来点赞收藏-深圳全球利物流有限公司

集港是什么意思? 集港的定义 集港是指将分散在各处的集装箱集中到港口码头堆场的过程&#xff0c;即把各地的集装箱汇集到港区&#xff0c;准备装船。在船挂靠码头之前&#xff0c;码头会制定集港计划&#xff0c;安排货船的集装箱在某个时间段内进入码头并摆放好&#xff0c;…

【js】this指向问题

1.首先先明确&#xff0c;this会出现在哪里。 this出现在全局作用域中&#xff0c;或函数作用域中&#xff08;普通函数、箭头函数&#xff09;。 对象是不产生作用域的&#xff0c;对象的{}和函数的{}不一样&#xff0c;this并不会直接出现在对象或类中&#xff0c;只会出现在…