diff --git a/src/chapter_3/chapter_3_4.md b/src/chapter_3/chapter_3_4.md new file mode 100644 index 0000000..8485d17 --- /dev/null +++ b/src/chapter_3/chapter_3_4.md @@ -0,0 +1,95 @@ +## 3.4 注释 + +在Rust中,注释分为三类: + +- 代码注释,用于说明某一块代码功能,读者往往是同一项目的协作者; +- 文档注释,支持markdown,对项目、公共API等进行描述,同时还能提供示例代码,读者是想要了解你项目的人; +- 包和模块注释,文档注释的一种,用于说明当前包和模块的功能,方便用户迅速了解项目。 + +本节主要简单介绍代码注释和文档注释,对于注释的其它功能,我们后面再深入。 + +### 3.4.1. 代码注释 + +代码注释有两种: + +(1)行注释,使用“//” +(2)块注释,使用“/*... */” + +示例如下: +``` +/* + * 块注释: + * 函数名:sum + * 参数: a,b + * 返回值类型: u32 + */ +fn sum(a: u32, b: u32) -> u32 { + a + b +} + +fn main() { + let a: u32 = 1; + let b: u32 = 1; + // 行注释:调用sum函数计算a+b的和 + let c = sum(a, b); + println!("a + b is {:?}", c); +} +``` + +### 3.4.2.文档注释 + +Rust提供了cargo doc命令可以把文档注释转换成html网页,最终展示给用户。文档注释也有文档行注释和文档块注释: + +(1)文档行注释,使用“///”; +(2)文档块注释,使用“/**...*/”。 + +示例如下: +``` +// 下面是文档行注释 + +/// `add_one` 将指定值加1 +/// +/// # Examples +/// +/// ``` +/// let arg = 5; +/// let answer = my_crate::add_one(arg); +/// +/// assert_eq!(6, answer); +/// ``` +pub fn add_one(x: i32) -> i32 { + x + 1 +} + +// 下面是文档块注释 + +/** `add_two` 将指定值加2 + + +``` +let arg = 5; +let answer = my_crate::add_two(arg); + +assert_eq!(7, answer); +``` +*/ +pub fn add_two(x: i32) -> i32 { + x + 2 +} + +fn main() { + let a: i32 = 1; + let c = add_one(a); + println!("a + 1 is {:?}", c); + + let d = add_two(a); + println!("a + 2 is {:?}", d); +} +``` + +运行如下命令: +``` +cargo doc --open +``` +将打开上面代码里面文档注释生成的文档,如下图: +![注释](../../assets/1.png)