Rust中if并不复杂,但与传统系统语言相比,更像动态类型语言中的if。我们来介绍一下,让读者可以理解细微差异。

if是一种一般概念的具体形式:分支。这个名称来自树的分支:一个决策点,根据所做的选择,可以选择不同的路径。

就if而言,一个选择指出两条路:
     let x = 5;if x == 5 {println!("x is five!");}

如果改变x的值,这一行就不会输出。更具体来说,如果if后面的表达式求值为true,那这个代码块就会执行。如果是false,就不会执行。

     如果想让在false的情况下执行点东西,那就使用else:
     let x = 5;if x == 5 {println!("x is five!");} else {println!("x is not five :(");}

如果还有另外一种情况,则使用else if:

     let x = 5;if x == 5 {println!("x is five!");} else if x == 6 {println!("x is six!");} else {println!("x is not five or six :(");}

这是很标准的用法。不过,也可以这么做:

     let x = 5;let y = if x == 5 {10} else {15}; // y: i32

上面能够(可能也应该)写成这样:

     let x = 5;let y = if x == 5 { 10 } else { 15 }; // y: i32

这样是正确的是因为if是一个表达式。表达式的值是被选中的分支中最后表达式的值。一个没有else的if始终会导致空值(())。

Rust语法之if语句相关推荐

  1. rust语法丑陋_抛出异常–缓慢而丑陋

    rust语法丑陋 这篇文章是关于历史经验以及最近应用的性能优化技术的. 几年前,我在特定的应用程序中发誓,我不得不发现隐藏在真正聪明的工程"技术"之下的无证行为. 它是负责开票的典 ...

  2. sql高级语法之case语句

    sql高级语法之case语句 1.创建数据库 2.创建表 3.CASE语句 语法格式1 示例 语法格式2 示例 1.创建数据库 create DATABASE advanced_prac; use a ...

  3. rust 入门笔记: rustlings(推荐一些学习rust语法的一些非常好的小练习)

    rustlings 推荐一个学习rust非常好的repo: Small exercises to get you used to reading and writing Rust code! - 学习 ...

  4. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  5. python词汇和语法规定_Python语法规则与语句

    语法规则与语句 一.输入与输出 输出: 1.输出单个值,将需要输出的内容直接放到小括号内即可,可以是任意类型的常量或者表达式. 2.输出多个值,将需要输出的内容放到小括号里,不同的输出内容用逗号隔开. ...

  6. SQL笔记(一)SQL语法、SELECT语句、DISTINCT语句、LIMIT、LIMIT和OFFSET组合使用、WHERE 子句

    文章目录 1SQL语法 1.1 SELECT 语句 1.1.1SQL SELECT 语句 1.1.2SQL SELECT 语法 1.2DISTINCT 语句 1.2.1 DISTINCT 的作用 1. ...

  7. JAVA语法中case语句的特性

    JAVA语法中case语句的特性: 1.case拥有穿透机制, 若case后不写break,如果命中了某个case语句步骤,下面的case结果将会同时执行.建议写完一个case后 针对break的增加 ...

  8. JavaScript基础语法(输出语句)

    JavaScript基础语法(输出语句) 学习路线:JavaScript基础语法(输出语句)->JavaScript基础语法(变量)->JavaScript基础语法(数据类型)->J ...

  9. mysql 忽略语法错误_MYSQL语句中易忽略的语法错误 | 学步园

    $str="CREATE TABLE test ( id int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , name VARCHAR( 255 ...

最新文章

  1. 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点
  2. SQL Server 2008创建数据库
  3. 使用Pad Designer制作焊盘
  4. Docker 网络基础原理
  5. 日语学习-多邻国-关卡1-时间2
  6. Uzi宣布退役:身体条件不允许再继续战斗了!
  7. additemdecoration重复_安卓中另一个强大的大量数量集控件RecyclerView
  8. 线程的同步与互斥,死锁
  9. 实现计算机和用户之间的关系,计算机系统概述
  10. 常用符号计算机输入法,九种常用输入法特殊符号功能揭密输入法 -电脑资料
  11. 【Python 项目】02 微信定时发送消息
  12. ODT(old driver tree)详解(带例题)
  13. 蚂蚁金服首席数据科学家漆远:AI技术开放,与业界融合共创
  14. debian无法使用ifconfig
  15. Android 性能优化概述
  16. 点击按钮没有反应,onclick函数点击无反应的原因
  17. 坦克大战项目c语言代码,c语言 坦克大战 游戏源码下载
  18. 【kindle技巧】用Calibre给txt文件生成目录,epub格式制作,电子书格式生成
  19. MySQL Kill出现Killed死锁处理
  20. 华为数通笔记-ISIS基础

热门文章

  1. Python3,多种方法,同时执行多条SQL语句,并把查询结果分别写入不同Sheet页,妥妥的学到了。
  2. 7 Win98 MS—DOS
  3. 【帝国CMS插件】支持7.5 7.2 移动同步生成插件 帝国多端访问必备插件带详细安装教程
  4. Matlab—什么是nc文件,以及如何读取导入
  5. 项目管理-5大过程与47小过程关系图解
  6. STM32学习笔记:FLASH读写之二
  7. spring中遇到的java.lang.ClassCastException中cannot be cast to报错(初学)
  8. ad15原理图中变压器种类_简单高效1.5v升压电路图大全(七款1.5v升压电路设计原理图详解)...
  9. (转)从零实现3D图像引擎:(11)苍井空做客讲解3D变换矩阵的推导
  10. java计算机毕业设计基于安卓Android的电子废弃物回收利用APP