注意: 最新版のドキュメントをご覧ください。この第1版ドキュメントは古くなっており、最新情報が反映されていません。リンク先のドキュメントが現在の Rust の最新のドキュメントです。

コメント

いくつかの関数ができたので、コメントについて学ぶことはよい考えです。 コメントはコードについての何かを説明する助けになるように、他のプログラマに残すメモです。 コンパイラはそれらをほとんど無視します。

Rustには気にすべき2種類のコメント、 行コメントドキュメンテーションコメント があります。

fn main() { // Line comments are anything after ‘//’ and extend to the end of the line. // 行コメントは「//」以降の全ての文字であり、行末まで続く let x = 5; // this is also a line comment. // If you have a long explanation for something, you can put line comments next // to each other. Put a space between the // and your comment so that it’s // more readable. // もし何かのために長い説明を書くのであれば、行コメントを複数行に渡って書くこと // ができる。//とコメントとの間にスペースを置くことで、より読みやすくなる }
// 行コメントは「//」以降の全ての文字であり、行末まで続く

let x = 5; // this is also a line comment.

// もし何かのために長い説明を書くのであれば、行コメントを複数行に渡って書くこと
// ができる。//とコメントとの間にスペースを置くことで、より読みやすくなる

その他の種類のコメントはドキュメンテーションコメントです。 ドキュメンテーションコメントは // の代わりに /// を使い、その中でMarkdown記法をサポートします。

fn main() { /// Adds one to the number given. /// 与えられた数値に1を加える /// /// # Examples /// /// ``` /// let five = 5; /// /// assert_eq!(6, add_one(5)); /// # fn add_one(x: i32) -> i32 { /// # x + 1 /// # } /// ``` fn add_one(x: i32) -> i32 { x + 1 } }
/// 与えられた数値に1を加える
///
/// # Examples
///
/// ```
/// let five = 5;
///
/// assert_eq!(6, add_one(5));
/// # fn add_one(x: i32) -> i32 {
/// #     x + 1
/// # }
/// ```
fn add_one(x: i32) -> i32 {
    x + 1
}

もう1つのスタイルのドキュメンテーションコメントに //! があります。これは、その後に続く要素ではなく、それを含んでいる要素(例えばクレート、モジュール、関数)にコメントを付けます。 一般的にはクレートルート(lib.rs)やモジュールルート(mod.rs)の中で使われます。

fn main() { //! # Rust標準ライブラリ //! //! Rust標準ライブラリはポータブルなRustソフトウェアをビルドするために不可欠な //! ランタイム関数を提供する。 }
//! # Rust標準ライブラリ
//!
//! Rust標準ライブラリはポータブルなRustソフトウェアをビルドするために不可欠な
//! ランタイム関数を提供する。

ドキュメンテーションコメントを書いているとき、いくつかの使い方の例を提供することは非常に非常に有用です。 ここでは新しいマクロ、 assert_eq! を使っていることに気付くでしょう。 これは2つの値を比較し、もしそれらが互いに等しくなければ panic! します。 これはドキュメントの中で非常に便利です。 もう1つのマクロ、 assert! は、それに渡された値が false であれば panic! します。

それらのドキュメンテーションコメントからHTMLドキュメントを生成するため、そしてコード例をテストとして実行するためにも rustdoc ツールを使うことができます!