Rust学习笔记
常见的编程概念
注释
在 Rust 中,惯用的注释样式是以两个斜杠开始注释,并持续到本行的结尾。对于超过一行的注释,需要在每一行前都加上 //
,像这样:
// So we’re doing something complicated here, long enough that we need
// multiple lines of comments to do it! Whew! Hopefully, this comment will
// explain what’s going on.
注释也可以放在包含代码的行的末尾:
文件名:src/main.rs
fn main() {
let lucky_number = 7; // I’m feeling lucky today
}
不过你更经常看到的是以这种格式使用它们,也就是位于它所解释的代码行的上面一行:
文件名:src/main.rs
fn main() {
// I’m feeling lucky today
let lucky_number = 7;
}
Rust 还有另一种注释,称为文档注释,我们将在 14 章的 “将 crate 发布到 Crates.io” 部分讨论它。
控制流
Rust 代码中最常见的用来控制执行流的结构是 if
表达式和循环。
if
表达式
if
表达式允许根据条件执行不同的代码分支。你提供一个条件并表示 “如果条件满足,运行这段代码;如果条件不满足,不运行这段代码。”
在 projects 目录新建一个叫做 branches 的项目,来学习 if
表达式。在 src/main.rs 文件中,输入如下内容:
文件名:src/main.rs
fn main() {
let number = 5;
if number > 3 {
println!("condition was true");
} else {
println!("condition was false");
}
}
所有的 if
表达式都以 if
关键字开头,其后跟一个条件。在这个例子中,条件检查变量 number
的值是否大于 3。在条件为 true
时希望执行的代码块位于紧跟条件之后的大括号中。if
表达式中与条件关联的代码块有时被叫做 arms,就像第二章 “比较猜测的数字和秘密数字” 部分中讨论到的 match
表达式中的分支一样。
也可以包含一个可选的 else
表达式来提供一个在条件为 false
时应当执行的代码块,这里我们就这么做了。如果不提供 else
表达式并且条件为 false
时,程序会直接忽略 if
代码块并继续执行下面的代码。
另外值得注意的是代码中的条件 必须 是 bool
值。如果条件不是 bool
值,我们将得到一个错误。例如,尝试运行以下代码:
文件名:src/main.rs
fn main() {
let number = 3;
if number {
println!("number was three");
}
}
这个错误表明 Rust 期望一个 bool
却得到了一个整数。不像 Ruby 或 JavaScript 这样的语言,Rust 并不会尝试自动地将非布尔值转换为布尔值。必须总是显式地使用布尔值作为 if
的条件。例如,如果想要 if
代码块只在一个数字不等于 0
时执行,可以把 if
表达式修改成下面这样:
fn main() {
let number = 3;
if number != 0 {
println!("number was something other than zero");
}
}
使用 else if
处理多重条件
可以将 else if
表达式与 if
和 else
组合来实现多重条件。例如:
文件名:src/main.rs
fn main() {
let number = 6;
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else if number