Rust 注释
注释(comment)是你在代码里写给人看的说明文字。Rust 编译时会完全忽略它们,所以注释永远不会影响程序的运行。好的注释解释的是代码为什么这样做,而不只是它做了什么。
最常见的注释以 // 开头。从 // 开始到这一行结尾的内容都会被忽略:
fn main() { // 这是一条注释,Rust 会完全跳过它 println!("你好!"); // 注释也可以放在行尾}输出:
你好!想写一段比较长的说明,可以在每一行开头都写上 //:
fn main() { // 这个程序向用户打招呼。 // 它只打印一行文字。 // 作为第一个示例编写。 println!("你好!");}输出:
你好!Rust 也支持写在 /* 和 */ 之间的块注释,它可以跨越好几行:
fn main() { /* 这是一条块注释。 它可以跨越多行, 不用每行都写 //。 */ println!("你好!");}输出:
你好!实际写代码时,大多数 Rust 代码即使是多行注释也用 //。这是社区的惯例,而且和编辑器的快捷键配合得很好。
把代码注释掉
Section titled “把代码注释掉”测试某些东西时,用注释临时禁用一行代码非常方便:
fn main() { println!("这一行会运行"); // println!("这一行暂时关掉了");}输出:
这一行会运行写出有用的注释
Section titled “写出有用的注释”只是把代码复述一遍的注释毫无用处。代码本身已经说明了发生了什么。好的注释要说明为什么,或者提醒读者那些从代码里看不出来的事:
fn main() { let minutes = 135;
// 计时器只显示整小时。整数除法会丢掉余数, // 而这正是我们在这里想要的。 let hours = minutes / 60; let leftover = minutes - hours * 60; // 凑不满一小时的分钟数
println!("{hours} 小时 {leftover} 分钟");}输出:
2 小时 15 分钟拿它和 // 把分钟数除以 60 这样的注释比一比。后者说的没错,但谁都看得懂 minutes / 60。真正有用的信息是:为什么在这里做除法没问题。
还有几个值得养成的习惯:
- 让注释跟上代码的变化:和代码对不上的注释比没有注释更糟,因为大家会相信它。
// TODO:是标记未完成工作的常见写法,比如// TODO: 处理负数。很多编辑器会高亮它,还能列出项目里所有的 TODO。- Rust 的块注释可以嵌套:和 C 语言不同,你可以把已经包含
/* */注释的代码再包进另一个块注释里,照样能正常工作:
fn main() { /* 暂时关掉: println!("旧的问候"); /* 向所有人问好 */ */ println!("新的问候");}输出:
新的问候Rust 还有一种特殊的注释,以 ///(三个斜杠)开头。这就是文档注释(doc comment),用来描述函数,Rust 可以用 cargo doc 把它们生成一个可以浏览的文档网站。
/// 把两个数相加并返回结果。fn add(a: i32, b: i32) -> i32 { a + b}作为新手,现在还用不到文档注释。只要知道 /// 是写文档用的,而 // 用来写普通的说明就行。等你准备好了,文档一页会教你怎么写文档注释、生成文档,甚至把示例变成测试。
1. 关掉一行
Section titled “1. 关掉一行”下面这个程序会打印三行。把中间那行变成注释,让程序只打印 第 1 行 和 第 3 行。提示:在要关掉的那一行开头加上 //。
fn main() { println!("第 1 行"); println!("第 2 行"); println!("第 3 行");}2. 一次关掉两行
Section titled “2. 一次关掉两行”现在打印 第 1 行 到 第 4 行,但只用一个块注释关掉第 2 行和第 3 行。提示:在第 2 行前面用 /* 开始注释,在第 3 行后面用 */ 结束。
查看答案
fn main() { println!("第 1 行"); /* println!("第 2 行"); println!("第 3 行"); */ println!("第 4 行");}输出:
第 1 行第 4 行- 注释是 Rust 会忽略的说明文字,用来解释你的代码。
//开始一条行注释(最常用的一种)。/* ... */是可以写多行的块注释,而且块注释可以嵌套。- 好的注释解释为什么,而不是重复代码已经说明的事。
///是文档注释,用来生成文档。
小测验
1. Rust 编译代码时,会怎样处理注释?
2. /// 文档注释是用来做什么的?
得分: 0 / 2
- 注释 —《Rust 程序设计语言》:官方教程中关于
//注释以及注释通常放在哪里的简短小节。 - 注释 —《通过例子学 Rust》:在一个可以运行的示例里展示所有注释风格,包括写在表达式中间的块注释。
- 编写有用的文档注释 —《Rust 程序设计语言》:初步了解
///和//!,以及cargo doc怎样使用它们。 - How to write documentation — The rustdoc book(英文):好的文档注释应该包含什么,写库的时候用得上。
- Comments — The Rust Reference(英文):精确的规则,包括嵌套块注释。