注释

注释是一种为代码添加注释或文档的方法。它们会被编译器忽略,不会生成 Move 字节码。你可以使用注释来解释代码的功能,向自己或其他开发者添加备注,暂时移除部分代码或生成文档。Move 中有三种类型的注释:行注释、块注释和文档注释。

行注释

module book::comments_line {
    fun some_function() {
        // this is a comment line
    }
}

你可以使用双斜杠 // 来注释掉余下的行。编译器会忽略 // 之后的所有内容。

module book::comments_line_2 {
    // let's add a note to everything!
    fun some_function_with_numbers() {
        let a = 10;
        // let b = 10 this line is commented and won't be executed
        let b = 5; // here comment is placed after code
        a + b; // result is 15, not 10!
    }
}

块注释

块注释用于注释掉一段代码。它们以 /* 开始,以 */ 结束。编译器会忽略 /**/ 之间的所有内容。你可以使用块注释来注释掉单行或多行代码,甚至可以注释掉一行中的一部分。

module book::comments_block {
    fun /* you can comment everywhere */ go_wild() {
        /* here
           there
           everywhere */ let a = 10;
        let b = /* even here */ 10; /* and again */
        a + b;
    }
    /* you can use it to remove certain expressions or definitions
    fun empty_commented_out() {

    }
    */
}

这个例子有点极端,但它展示了如何使用块注释来注释掉一行中的一部分。

文档注释

文档注释是一种特殊的注释,用于为代码生成文档。它们类似于块注释,但以三个斜杠 /// 开始,并放在它们所记录的项目定义之前。

/// Module has documentation!
module book::comments_doc {

    /// This is a 0x0 address constant!
    const AN_ADDRESS: address = @0x0;

    /// This is a struct!
    public struct AStruct {
        /// This is a field of a struct!
        a_field: u8,
    }

    /// This function does something!
    /// And it's documented!
    fun do_something() {}
}