手记

【金秋打卡】第1天 Rust 表达式和语句

课程章节: 第4章 Rust 流程控制 4.2 表达式的多种形式

主讲老师叶枭

课程内容:

今天学习的内容是 Rust 中的表达式(expression)语句(statement)

表达式和语句

Rust 是一门基于表达式的语言。Rust 中的语句和表达式,和很多其他语言都不太一样。

语句和表达式是 Rust 语言实现逻辑控制的基本单元。

在 Rust 程序里面,表达式可以是语句的一部分,反过来,语句也可以是表达式的一部分。

  1. 一个表达式总会产生一个值,因此它必然有类型。
  2. 语句不产生值,它的类型永远是 ();
  3. 如果把一个表达式加上分号,那么它就变成了一个语句;
  4. 如果把一个语句放到一个语句块中包起来,那么它就可以当成一个表达式使用。

表达式和语句最大的区别,表达式总会返回一个值,而语句不会。比如:

1 + 1; // 表达式,执行完有返回值是 2
let a = 1; // 语句,将 1 赋值给变量 a,执行完没有返回值

Rust 的大部分代码都会有返回值,除了这些语句:

  • 变量声明:let a = 1;

  • 模块声明:mod mod1 {};

  • 函数声明:fn main() {}

  • 结构体声明:struct Person {}

  • 枚举声明:enum Color {}

if 表达式

在其他语言中,用于流程控制的都是语句,比如if 条件语句,while 循环语句。而在 Rust 中,这些都属于表达式而不是语句。

这也意味着,一个“if 语句”或者"while语句"会有返回值。

先看一个 if表达式,返回值使用一个变量接收即可:

let name = 'kw';

let res = if name='kw' {
    'kw'
} else {
    'KW'
}

再比如一个 while 循环表达式:

let mut count = 0;
let res = while count < 5 {
    println!("我们跳啊跳,跳啊跳...");
    count += 1;
};
println!("{}", res);

关于 if 表达式和 while 表达式,初学者可能会很疑惑。没关系,只要头脑里有它们是表达式的意识,日后再多写几条,就能接受这种设定了。

课程收获

这节课学习了 Rust 中语句和表达式的概念。Rust 是一门基于表达式的编程语言,在使用上和其他编程语言有些许不同之处。在编码时可以多体会这一点。

0人推荐
随时随地看视频
慕课网APP