注释
词法
行注释 :
//
(~[/
!
\n
] |//
) ~\n
*
|//
块注释 :
/*
(~[*
!
] |**
| 块注释或文档) (块注释或文档 | ~*/
)**/
|/**/
|/***/
内部行文档 :
//!
~[\n
孤立CR]*内部块文档 :
/*!
( 块注释或文档 | ~[*/
孤立CR] )**/
外部行文档 :
///
(~/
~[\n
孤立CR]*)?外部块文档 :
/**
(~*
| 块注释或文档 ) (块注释或文档 | ~[*/
孤立CR])**/
块注释或文档 :
块注释
| 外部块文档
| 内部块文档孤立CR :
\r
不紧随\n
非文档注释
注释遵循 C++ 风格的行 (//
) 和块 (/* ... */
) 注释的一般形式。支持嵌套的块注释。
非文档注释被解释为空白的一种形式。
文档注释
以三个斜线开始的行文档注释 (///
),以及块文档注释 (/** ... */
),都是内部文档注释,被解释为 doc
属性 的特殊语法。
相当于在注释主体的周围写上 #[doc="..."]
,即 /// Foo
和 /** Bar */
会转换成 #[doc="Bar"]
。
以 //!
开头的行注释和 /*! ... */
块注释也是文档注释,其应用于父级,而不是之后条目。
相当于在注释位置写上 #![doc="..."]
。 //!
注释通常用于拥有源文件的模块。
在文档注释中不允许孤立的 CR (\r
) ,即后面没有 LF (\n
) 。
示例