创建项目

按照之前的章节讲的创建一个 Cargo 项目的方法,自己创建一个名为 guessing_game 的 cargo 项目并执行,确保能成功打印出 Hello World。

编写代码

使用 RustRover 打开项目,打开 src/main.rs 文件,我们将在这个文件中编写我们的代码。

将以下内容敲入 main.rs 文件中(对照着敲一遍,不要复制粘贴,熟悉敲代码的感觉):

use std::io;fn main() {println!("Guess the 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);
}

use std::io;这行代码导入标准库中的 io 模块,用于处理输入/输出操作。

fn main() { 这行代码定义了主函数,它是 Rust 程序的入口点。

println!("Guess the number!"); 这行代码打印字符串到控制台,提示用户猜数字。

println!("Please input your guess."); 这行代码再次打印字符串,提示用户输入猜测。

letmut guess = String::new(); 声明一个可变(mut)变量guess,并初始化为一个空的String类型实例。String是 Rust 中可增长的、UTF-8 编码的字符串类型。

io::stdin() 这行代码调用 io模块的stdin()函数,返回一个Stdin类型实例,代表标准输入(通常是键盘)。

.read_line(&mut guess) 这行代码调用Stdin实例的read_line()方法。它读取用户输入的一行文本,并将其追加到guess变量中。&mut guess表示将guess的可变引用传递给read_line,这样read_line就可以修改guess的内容。

.expect("Failed to read line");这行代码是处理异常, read_line方法返回一个Result类型。expect()方法用于处理这个Result。 如果ResultOk(表示成功),expect()会解包并返回内部的值。 如果ResultErr(表示失败),expect()会使程序崩溃,并打印括号中的错误消息。 在这里,如果读取输入失败,程序就会带着“Failed to read line”消息终止。

println!("You guessed: {}", guess); 这行代码是将用户输入的猜测数字打印出来,{}是占位符,会被guess变量的值替换。 println!是一个宏,用于格式化输出。

运行

之前讲过,使用如下命令运行项目:

cargo run

当打印出"Please input your guess." 时,你输入一个数字,然后,就会打印出你输入的数字是什么。

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

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

相关文章

重读《人件》Peopleware -(22)Ⅲ 适当人选 Ⅵ 乐在其中(上)

本章以一个小测验开始:问题1:在过去几年里,你们组织的年员工流失率是多少? 问题2:替换一个离职员工平均需要多少成本?评分标准如下:如果你对这两个问题有任何答案,则通过&#xff1b…

Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡

Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡既然我们甲方要做直播私有化,既然我们做了这么多年系统,我们对直播的理解很深,那么我们2025年就应该用更先进的技术栈,不然怎么让我们的…

SpringBoot 集成Mybatis Plus

一、为什么SpringBoot不推荐使用MybatisSpring Boot 不推荐使用 MyBatis,主要源于二者在设计理念、生态融合和开发风格上的差异。Spring Boot 强调“约定优于配置”,追求高效的开发体验和统一的框架风格。它通过自动配置和依赖注入,将复杂的基…

PI 思维升级 PI设计的典范转移:从阻抗思维到谐振控制

们先来回想一件事,根据欧姆定律,阻抗是不是越低越好? 代表即使有很大的瞬时电流,瞬间的电压降也不会超过某个极限!理论上是! 可是这其实忽略了两个关键的要素:PDN阻抗有谐振:谐振代表…

如何制定企业级服务器安全策略(Security Policy)

制定一套**企业级服务器安全策略(Security Policy)**对于保护服务器资源、数据安全和业务连续性至关重要。以下是制定安全策略的详细指南,包括安全策略的核心要素、实施步骤和具体措施,帮助企业构建全面的服务器安全防护体系。1. …

n1 armbian docker compose 部署aipan mysql

apt update apt install docker-compose-plugin -y #安装docker compose docker compose version Docker Compose version v2.38.2 sudo mkdir -p /sda1/data/mysql/conf.d sudo chown -R 999:999 /sda1/data/mysql # MySQL 用户 UID 通常为 999 cat docker-compose.yml vers…

RAG情境化分段向量模型voyage-context-3,聚焦分段细节,融入全局文档上下文

最近看到一个有意思的工作,原文来自: https://blog.voyageai.com/2025/07/23/voyage-context-3/?utm_sourceTWITTER&utm_mediumORGANIC_SOCIAL voyage-context-3:聚焦分段细节,融入全局文档上下文 概要: Voyage A…

计算机体系结构中的中断服务程序ISR是什么?

计算机体系结构中的中断服务程序ISR是什么? 在计算机体系结构中,中断服务程序(Interrupt Service Routine, ISR) 是操作系统或硬件直接调用的关键代码模块,用于响应来自硬件设备、软件异常或系统事件的中断信号。其核心…

开源项目XBuilder前端框架

spx-gui/ 配置文件package.json 项目依赖和脚本配置vite.config.ts Vite构建工具配置tsconfig.json TS项目配置主文件tsconfig.app.json 应用程序的TS配置tsconfig.node.json Node.js环境的TS配置index.html 应用入口HTML文件src/ 源码目录main.ts 应用入口文件,初始…

0723 单项链表

Part 1.完成单向链表,并完成下面功能1.单链表节点创建链表是物理空间上不连续的一个结构,需要创建一个next作为指向下一个节点的指针,所以需要建立一个结构体包含数据域,next指针域,记录长度的数据域。因为长度只有头节…

基于 ASP.NET Web 应用程序(.NET Framework)的花店系统

1.1功能模块实现1.1.1整体结构界面由两部分组成:左侧导航栏、右侧内容展示区。使用了 Bootstrap 5 的样式库,并结合了 ASP.NET MVC 的 Html.ActionLink 和 Razor 条件判断语句来动态生成菜单项。1.1.2导航栏功能模块导航栏基础结构导航栏基础结构使用 Bo…

C++ Qt6 CMake qml文件启动方式说明

在Qt6之后,Qt程序默认使用CMake进行构建,当然也可以使用qmake, 本篇博客介绍Qt6.8之前和Qt6.8版本中QtQuick程序的启动方式。 在QtQuick程序main.cpp里qml的文件启动分为两种:(1)直接加载qml文件,(2)加载qml模块,下面分别介绍这两种启动方式。 方式1:直接启动qml文…

字符串 “asdasjkfkasgfgshaahsfaf” 经过哈夫曼编码之后存储比特数是多少?

要计算字符串 “asdasjkfkasgfgshaahsfaf” 经过哈夫曼编码后的存储比特数,需按以下步骤进行:步骤 1:统计字符出现频率先统计字符串中每个字符的出现次数:a:出现 6 次s:出现 6 次d:出现 1 次j&a…

什么是游戏盾(高防版)?

随着网络游戏产业的快速发展,游戏服务器的安全问题日益受到关注。DDoS攻击、CC攻击等网络威胁常常导致游戏卡顿、断线甚至服务器宕机,严重影响玩家体验。游戏盾(高防版)是一种专为游戏业务设计的网络安全防护服务,集成…

openGauss数据库在CentOS 7 中的单机部署与配置

部署 版本选择 通过openGuass官网下载地址 ,我们可以看到它支持x86_64与Aarch64两种平台,又分成openEuler 22、openEuler 20、Centos 7以及Docker 版本。 进入CentOS 7标签,看到又分成企业版、轻量版、极简版与分布式镜像版。 本文只讨论…

HTTP响应状态码详解

HTTP 响应状态码(HTTP Status Code)是服务器在响应客户端请求时返回的 3 位数字代码,用于表示请求的处理状态。以下是常见的 HTTP 状态码及其含义: 1xx(信息性状态码) 表示请求已被接收,需要继…

Pytorch中register_buffer和torch.nn.Parameter的异同

说下register_buffer和Parameter的异同 相同点方面描述追踪都会被加入 state_dict(模型保存时会保存下来)。与 Module 的绑定都会随着模型移动到 cuda / cpu / float() 等而自动迁移。都是 nn.Module 的一部分都可以通过模块属性访问,如 self…

吉吉巳资源整站源码完整打包,适用于搭建资源聚合/整合类站点,全网独家,拿来就用

想要搭建一个资源整合站点,如影视聚合类站点、资讯聚合类站点、图集聚合类站点等,需要花费大量的时间来查找合适的系统或源码。然后要去测试,修复bug,一直到能够正常的运营使用,花费的时间绝对不短,今天分享…

嵌入式学习的第三十五天-进程间通信-HTTP

TCP/IP协议模型:应用层:HTTP;传输层:TCP UDP;网络层:IPv4 IPv6网络接口层一、HTTP协议1. 万维网WWW(World Wide Web) 世界范围内的,联机式的信息储藏所。 万维网解决了获取互联网上的数据时需要解决的以下问题&#x…

es 和 lucene 的区别

1. Lucene 是“发动机”,ES 是“整车”Lucene:只是一个 Java 库,提供倒排索引、分词、打分等底层能力。你必须自己写代码处理索引创建、更新、删除、分片、分布式、故障恢复、API 封装等所有逻辑。Elasticsearch:基于 Lucene 的分…