Rust-语句和表达式

这篇具有很好参考价值的文章主要介绍了Rust-语句和表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

if-else

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

Rust-语句和表达式,Rust,rust,开发语言,后端

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

Rust-语句和表达式,Rust,rust,开发语言,后端

loop

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

Rust-语句和表达式,Rust,rust,开发语言,后端
我们可以在loop while for循环前面加上“生命周期标识符”。该标识符以单引号开头,在内部的循环中可以使用break语句选择跳出到哪一层。

Rust-语句和表达式,Rust,rust,开发语言,后端
在loop内部break的后面可以跟一个表达式,这个表达式就是最终的loop表达式的值。

Rust-语句和表达式,Rust,rust,开发语言,后端

如果一个loop永远不返回,那么它的类型就是“发散类型”。
Rust-语句和表达式,Rust,rust,开发语言,后端

while

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

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

Rust-语句和表达式,Rust,rust,开发语言,后端
以上语句在Rust中完全合理。因为编译器可以通过流程分析推理出x=1;必然在println!之前执行过,因此打印变量x的值是完全合理的。而下面的代码是编译不过的:

Rust-语句和表达式,Rust,rust,开发语言,后端
因为编译器会觉得while语句的执行跟条件表达式在运行阶段的值有关,因此它不确定x是否一定会初始化,于是它决定给出一个错误:use of possibly uninitialized variable,也就是说变量x可能没有初始化。

for循环

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

Rust-语句和表达式,Rust,rust,开发语言,后端文章来源地址https://www.toymoban.com/news/detail-794482.html

到了这里,关于Rust-语句和表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 表达式和语句

    可以被求值的代码,并将其计算出一个结果 一段可以执行的代码,是一个行为,例如分支语句和循环语句 以前写的代码,写几句就 从上往下执行 ,---顺序结构 有时候要 根据条件 选择执行代码----分支结构 某段代码**重复执行---循环结构 根据条件判定真假, 选择性 的执行

    2024年02月09日
    浏览(35)
  • sh 脚本循环语句和正则表达式

    目录 1、循环语句 1、for 2、while 3、until 2、正则表达式 1、元字符 2、表示次数 3、位置锚定 4、分组 5、扩展正则表达式 循环含义 将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件 重复运行次数 循环次数事先已知 循环次数事先未知 for 为 已知循环数 相对于

    2024年02月12日
    浏览(38)
  • 030、SQL语句之数据类型与表达式

    类型 存储空间 最小值(有符号/无符号) 最大值(有符号/无符号) TINYINT 1 -128 / 0 127 / 255 SMALLINT 2 -32768 / 0 32767 / 65535 MEDIUMINT 3 -8388608 / 0 8388607 / 16777215 INT 4 -2147483648 / 0 BIGINT 8 -9223372036854775808 / 0 9223372036854775807 / 18446744073709551615 注意unsigned: 不允许负数 用于精确数值:整数、小数或两

    2024年02月13日
    浏览(46)
  • Go语句与表达式深度解析:全案例手册

    关注公众号【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 语句是Go编程

    2024年02月09日
    浏览(41)
  • 【算法基础】java基础——基本结构、数据类型、表达式、语句

    Java程序的基本结构:         一段Java程序或者一个静态库,会用到下面7种语法         1、原始数据类型:在计算机程序中精确到定义整数、浮点数、布尔值等         2、语句:通过创建变量并对其赋值,它们能够被组合为类似数学公式定义的表达式         3、数组  

    2024年01月16日
    浏览(41)
  • notepad++配合正则表达式分组模式处理文本转化为sql语句

    一、正则分组知识点补充 正则分组和捕获 ():用于分组和捕获子表达式。 大白话就是()匹配到的数据,通过美元符号加下标可以获取该数据,例如$1、$2, 下标从1开始。 下面的案例就采用该模式处理文本数据 二、使用正则的需求背景 有一份报表的数据,需要把数据入库到m

    2024年02月07日
    浏览(57)
  • 记录解决“无法将“C:......conda.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称”以及“表达式或语句中包含意外的标记”的系列问题(VSCode开发环境)

      今天安装完VSCode,调试代码时发现终端提示以下报错信息,网上查了相关帖子,并依照参考1的方式进行了以下调试:    参考其它博客(参考2)说是环境变量没有添加,但是我试了之后发现不是这个问题。 原因其实就是找不到途中说的conda.exe文件,所以需要进入上图红字

    2024年01月24日
    浏览(42)
  • 7.JS里表达式,if条件判断,三元运算符,switch语句,断点调试

    表达式就是可以被求值的代码比如什么a = 1 语句就是一段可以执行的代码比如什么if else 直接给B站的黑马程序员的老师引流一波总结的真好 就是基本上所有的语言都会有的if else 语句就是满足不同的条件执行不同的代码,让计算机有条件判断的能力。 注意在if的括号里面除了

    2024年02月20日
    浏览(52)
  • Spring:表达式语言

    Spring 表达式(Spring EL) 是一种功能强大的表达式语言,以 #{ 表达式 } 作为定界符,用于在运行时对对象进行访问和操作。通过使用 Spring 表达式达到简化开发、减少逻辑或配置的编写的目的。 Spring EL 主要可以引用 bean ,调用其属性和方法,也可以在 bean 标签中使用 value 属

    2024年02月16日
    浏览(50)
  • c语言运算符表达式

    算数运算符: 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。 加加在后,先计算表达式的结果在计算变量的值 a++; 加加在前,先计算变量的值在进行表达式的计算 ++a; int a=10; 将10赋值给整型变量a //a+=3;等同于 a=a+3;

    2024年02月08日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包