Rust中文档注释和测试

起因

今天看了Rust的文档注释,以往在源码中在文档看到有代码示例,以为是就单纯就是示例呢? 原来文档注释中的示例是可以进行单元测试的.

代码注释

/// 代码注释
pub fn code_comment(){
    // 单行代码注释

    /*多行注释 */
    let a = 10;
    let b = 20;
}

文档注释

/// 文档注释,主要写在函数上面 
pub fn document_comment(){
   // "///"为文档注释
   println!("文档注释....");
}
#生成文档
#cargo doc -p 项目名称
cargo doc -p mylib

#查看生成文档,会在默认浏览器打开
#cargo doc -p 项目名称 --open
cargo doc -p mylib --open

rust 文档注释效果图

包注释,或者是包说明

//! crate comment 包说明 
//! 
//! mylib 主要封装工具函数
//!

包注释效果图

测试文档注释的示例

#运行 文档注释代码示例
#cargo test -p 项目名称
cargo test -p mylib

测试文档注释中代码示例

对代码进行格式化

代码未格式化.
pub fn sum(x:i32, y:i32) ->i32 {
    x+y   
}

使用fmt工具进行格式话.

# 代码格式化
#cargo fmt -p 项目名称
cargo fmt -p mylib
/// 求和
///
/// # example
///
/// ```
/// let val = 30;
/// assert_eq!(val,mylib::sum(10,20));  //一定要加入当前包 包名
/// ```
pub fn sum(x: i32, y: i32) -> i32 {
    x + y
}

代码中,有了一个间隔.

秋风 2020-03-01