註解 (Comments)
註解是用於添加筆記或記錄程式碼的一種方式。它們會被編譯器忽略,不會產生 Move 位元組碼。您可以使用註解來解釋程式碼的功能、為自己或其他開發人員留註記、暫時移除部分程式碼或生成文檔。Move 中有三種類型的註解:行註解、區塊註解和文檔註解。
行註解 (Line Comment)
您可以使用雙斜線 // 來註解掉該行的其餘部分。編譯器將忽略 // 之後的所有內容。
module book::comments_line;
// 讓我們為所有東西加上說明!
fun some_function_with_numbers() {
let a = 10;
// let b = 10 這一行已註釋,不會執行
let b = 5; // 這裡註釋是放在程式碼之後
a + b; // 結果是 15,不是 10!
}
區塊註解 (Block Comment)
區塊註解用於註解掉一段程式碼。它們以 /* 開頭並以 */ 結尾。編譯器將忽略 /* 和 */ 之間的所有內容。您可以在使用區塊註解來註解掉單行或多行內容,甚至可以用它們來註解掉行內的一部份。
module book::comments_block;
fun /* 您可以在任何地方注釋 */ go_wild() {
/* 這裡
那裡
到處都是 */ let a = 10;
let b = /* 甚至在這裡 */ 10; /* 然後再次 */
a + b;
}
/* 您可以使用它來移除某些表達式或定義
fun empty_commented_out() {
}
*/
這個範例有點極端,但它展示了所有可以使用區塊註解的方式。
文檔註解 (Doc Comment)
文檔註解是用於為您的程式碼生成文檔的特殊註解。它們與行註解類似,但以三個斜線 /// 開頭,並放置在它們所說明的項目定義之前。
/// 模組有文件說明!
module book::comments_doc;
/// 這是一個 0x0 位址常數!
const AN_ADDRESS: address = @0x0;
/// 這是一個結構體!
public struct AStruct {
/// 這是結構體的一個欄位!
a_field: u8,
}
/// 此函式執行某些操作!
/// 並且它有文件說明!
fun do_something() {}
空白 (Whitespace)
與某些語言不同,空白(空格、Tab 和換行)對程式的含義沒有影響。