一、普通注释
// 这是第一种注释方式
/* 这是第二种注释方式 */
/*
多行注释
多行注释
多行注释
*/
二、文档注释
///外部行文档注释。为接下来的项生成帮助文档
//! 内部行文档注释。为注释所属于的项生成帮助文档
/**...*/外部块文档注释。为接下来的项生成帮助文档
/*!...*/内部块文档注释。为注释所属于的项生成帮助文档
实例
/// Adds one to the number given.
///
/// # Examples
///
/// ```
/// let x = add(1, 2);
///
/// ```
fn add(a: i32, b: i32) -> i32 {
return a + b;
}
fn main() {
println!("{}",add(2,3));
}
用 cargo doc 构建文档到 target/doc。注释转换成HTML格式的说明文档。
用 cargo test --doc 仅运行文档测试。
这些命令最终会调用 rustdoc。
三、文档属性
下面是一些最常使用的 #[doc] 属性
1.inline
用于内联文档,而不是链接到单独的页面。
例子
#[doc(inline)]
pub use bar::Bar;
/// bar的文档
mod bar {
/// Bar的文档
pub struct Bar;
}
2.no_inline
用于防止链接到单独的页面或其他位置。
例子
#[doc(no_inline)]
pub use crate::mem::drop;
3.hidden
使用此属性来告诉 rustdoc 不要包含此项到文档中:
例子
#[doc(hidden)]
pub use self::async_await::*;