Rust-语句和表达式

if-else

Rust中if-else表达式的作用是实现条件分支。if-else表达式的构成方式为:以if关键字开头,后面跟上条件表达式,后续是结果语句块,最后是可选的else块。条件表达式的类型必须是bool。

在这里插入图片描述

if-else结构还可以当表达式使用

在这里插入图片描述

loop

在Rust中,使用loop表示一个无限死循环。示例如下:

在这里插入图片描述
我们可以在loop while for循环前面加上“生命周期标识符”。该标识符以单引号开头,在内部的循环中可以使用break语句选择跳出到哪一层。

在这里插入图片描述
在loop内部break的后面可以跟一个表达式,这个表达式就是最终的loop表达式的值。

在这里插入图片描述

如果一个loop永远不返回,那么它的类型就是“发散类型”。
在这里插入图片描述

while

while语句是带条件判断的循环语句。其语法是while关键字后跟条件判断语句,最后是结果语句块。如果条件满足,则持续循环执行结果语句块。
在这里插入图片描述
看到这里,可能会产生疑惑:loop {}和while true {}循环有什么区别,为什么 Rust专门设计了一个死循环,loop语句难道不是完全多余的吗?

实际上不是。主要原因在于,相比于其他的许多语言,Rust语言要做更多的静态分析。loop和while true语句在运行时没有什么区别,它们主要是会影响编译器内部的静态分析结果。比如:

在这里插入图片描述
以上语句在Rust中完全合理。因为编译器可以通过流程分析推理出x=1;必然在println!之前执行过,因此打印变量x的值是完全合理的。而下面的代码是编译不过的:

在这里插入图片描述
因为编译器会觉得while语句的执行跟条件表达式在运行阶段的值有关,因此它不确定x是否一定会初始化,于是它决定给出一个错误:use of possibly uninitialized variable,也就是说变量x可能没有初始化。

for循环

Rust中的for循环实际上是许多其他语言中的for-each循环。Rust中没有类似C/C++的三段式for循环语句。举例如下:

在这里插入图片描述

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

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

相关文章

如何用LLM和自有知识库搭建智能agent?

用LangChain建立知识库,文末中也推荐其他方案。 项目源码:ChatPDF实现 LangChain Indexes使用 对加载的内容进行索引,在indexes中提供了一些功能: Document Loaders,加载文档Text Splitters,文档切分V…

nautilus`文件管理器打开文件管理器

使用nautilus文件管理器打开文件管理器,并使用管理员权限。以下是使用命令行的步骤: 打开终端(命令行界面),你可以通过按下Ctrl Alt T组合键来打开终端。 在终端中,使用以下命令以管理员权限打开文件管理…

开发实践5_后台管理^/ 分_页器

以下学习 朔宁夫 开发课 。(Python) 一 基本使用 创建超级用户 terminal // python manage.py createsuperuser 访问地址 //Log in | Django site adminhttp://127.0.0.1:8000/admin/login/?next/admin/ superuserr login django自带admin功能。其…

一文读懂「Prompt Engineering」提示词工程

在了解提示过程之前,先了解一下什么是提示prompt,见最后附录部分 一、什么是Prompt Engingering? 提示工程(Prompt Engingering),也被称为上下文提示(In-Context Prompting)&#x…

Django项目中的默认文件都有什么用

manager.py: 是django用于管理本项目的命令行工具,之后进行站点运行,数据库自动生成等都是通过本文件完成。 djangoStudy/__init__.py: 告诉python该目录是一个python包,暂无内容,后期一些工具的初始化可…

【数据库】间隙锁Gap Lock

什么是间隙锁 间隙锁(Gap Lock):间隙锁是(RR级别下)一个在索引记录之间的间隙上的锁,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间。间隙锁(Gap Lo…

Github登录时,要二次验证.Github 2FA登录问题

2023下半年, Github登录时,要二次验证. 点击“Enable 2FA now”跳到2FA验证界面。 点setup key是到secret串。 这里有一个可以不用app的验证方法。填入secret串,运行后,会得到验证码. https://blog.csdn.net/dejavu_980323/article/details/132318107 按照这个文章,得到验证…

记csv、parquet数据预览一个bug的解决

文章目录 一、概述二、实现过程1. 业务流程2. 业务逻辑3. 运行结果 三、bug现象1. 单元测试2.运行结果 三、解决思路1. 思路一2. 思路二 一、概述 工作中遇到通过sparksession解析csv、parquet文件并预览top100的需求。 二、实现过程 1. 业务流程 #mermaid-svg-Tzp1pJTvJunU…

227. Basic Calculator II

227. Basic Calculator II class Solution:def calculate(self, s: str) -> int:ititer(re.split(r([\\-\*\/]),s))lastansint(next(it))for op in it:nint(next(it))if op in -:if op-:n-nansnelse:if op*:nlast*nelse:nint(last/n)ansans-lastnlastnreturn ans 注意这个…

分布式任务调度平台XXL-JOB使用(二)

说明:之前总结过在CentOS系统里使用XXL-JOB。但在代码开发阶段,我们有时需要在本地环境测试定时任务代码,本文介绍如何在Windows系统使用XXL-JOB。 下载 (1)下载代码,解压打开 首先,去Github…

多线程实现方式二

这里写目录标题 RunnableRunable接口实现多线程使用Runnable接口实现多线程的好处线程同步 - 三个窗口买票lock实现同步锁 Runnable Runable接口实现多线程 实现 Runnable 接口 定义一个类 MyRunnable 实现 Runnable 接口 在 MyRunnable 类中重写 run() 方法 创建 Thread 类…

Python系列(3)—— 变量

变量 一、变量命名规范二、变量赋值三、变量的数据类型四、变量的作用域五、变量类型转换 Python编程中,变量是存储数据的容器。它们用于存储各种数据类型,如整数、浮点数、字符串、列表、字典等。理解变量及其工作原理是Python编程的基础。 一、变量命…

在Android原生项目中 创建 Flutter模块

前言 应用场景:在已有的Android原生项目中,引入Flutter模块,摸索了两天,终于给整出来了; 如果是新项目,最好直接创建Flutter项目,然后在Fluter的 android / ios目录中,写原生代码&…

深思熟虑可能性模型介绍与使用

深思熟虑可能性模型介绍与使用 如何联系我 作者:鲁伟林 邮箱:thinking_fioa163.com或vlinyes163.com 版权声明:文章和记录为个人所有,如果转载或个人学习,需注明出处,不得用于商业盈利行为。 背景 20…

力扣27-移除元素

移除元素 题目链接 解题思路 ans为左指针 循环遍历为右指针 右指针开始遍历整个列表,如果指针所指的元素与val值不等,那么这个元素不能被删除,将其放入到左指针索引处。 因为return的是列表的长度,ans恰好也是删除完元素后列表的…

[牛客周赛复盘] 牛客周赛 Round 28 20240114

[牛客周赛复盘] 牛客周赛 Round 28 20240114 总结A\B1. 题目描述2. 思路分析3. 代码实现 小红的炸砖块1. 题目描述2. 思路分析3. 代码实现 小红统计区间(easy)1. 题目描述2. 思路分析3. 代码实现 小红的好数组1. 题目描述2. 思路分析3. 代码实现 小红统…

FX图中的节点代表什么操作

在 FX 图中,每个节点代表一个操作。这些操作可以是函数调用、方法调用、模块实例调用,也可以是 torch.nn.Module 实例的调用。每个节点都对应一个调用站点,如运算符、方法和模块。 一.节点操作 下面是一些节点可能代表的操作: 1…

js中的数据类型

JavaScript 中有以下几种常见的数据类型: 基本类型(原始类型): 字符串(String):表示文本数据。数字(Number):表示数值数据。布尔(Boolean&#xf…

PPT插件-大珩助手-保留原素材的位置和大小一键替换

保留原素材的位置和大小一键替换 若勾选了一键替换,对于从素材库插入的图形,可以使得它的位置、大小与幻灯片中选中的形状一致 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实用的PPT辅助工具,支持W…

在众多的材质中选择灰口铸铁铸造划线平台、铸铁平台等的原因——河北北重

使用灰口铸铁制作铸铁平台和划线平台的主要原因有以下几点: 强度高:灰口铸铁具有较高的强度和硬度,能够承受较大的载荷和冲击力。这使得灰口铸铁非常适合制作需要承受重压和磨损的平台和设备。 耐磨性好:灰口铸铁具有较高的耐磨性…