Rustのコメント
コメントは、人間が読むためにコードの中に残しておくメモです。Rustはコンパイルのときにコメントを完全に無視するので、プログラムの動きに影響することはありません。よいコメントは、コードが何をしているかだけでなく、なぜそうしているかを説明します。
いちばんよく使うコメントは // で始まります。その行の // より後ろは、すべて無視されます。
fn main() { // これはコメント。Rustは完全に読み飛ばす println!("こんにちは!"); // 行の最後にもコメントを置ける}実行結果:
こんにちは!複数行のコメント
Section titled “複数行のコメント”長めのメモを書きたいときは、各行を // で始めます。
fn main() { // このプログラムはユーザーにあいさつする。 // 1行のテキストを表示するだけ。 // 最初の例として書いたもの。 println!("こんにちは!");}実行結果:
こんにちは!Rustには、/* と */ で囲むブロックコメントもあり、複数行にまたがって書けます。
fn main() { /* これはブロックコメント。 各行に // を付けなくても 複数行にわたって書ける。 */ println!("こんにちは!");}実行結果:
こんにちは!実際には、ほとんどのRustのコードでは、複数行でも // を使います。それがコミュニティの慣習で、エディタのショートカットとも相性がいいからです。
コードをコメントアウトする
Section titled “コードをコメントアウトする”何かを試している間、一時的にある行を無効にしたいときにもコメントは便利です。
fn main() { println!("この行は実行される"); // println!("この行は今はオフにしてある");}実行結果:
この行は実行される役に立つコメントを書く
Section titled “役に立つコメントを書く”コードをそのまま言い直しているだけのコメントは、何の役にも立ちません。何が起きるかは、コードを見ればわかるからです。よいコメントはなぜそうするのかを説明したり、読む人には見えないことを注意したりします。
fn main() { let minutes = 135;
// タイマーは「何時間」の部分だけを表示する。整数の割り算は // 余りを切り捨てるので、ここではそれがちょうど都合がいい。 let hours = minutes / 60; let leftover = minutes - hours * 60; // 1時間に満たなかった分
println!("{hours}時間{leftover}分");}実行結果:
2時間15分// minutes を 60 で割る のようなコメントと比べてみてください。間違ってはいませんが、minutes / 60 は誰でも読めます。役に立つ情報は、ここで割り算をしても問題ない理由のほうです。
ほかにも、身につけておきたい習慣がいくつかあります。
- コメントは最新の状態に保ちましょう。コードと合わなくなったコメントは、コメントがないよりも悪いものです。読む人はコメントを信じてしまうからです。
// TODO:は、まだ終わっていない作業に印を付けるよく使われる書き方です。たとえば// TODO: 負の数を扱うのように書きます。多くのエディタはこれを強調表示し、プロジェクト内のTODOを一覧にすることもできます。- Rustのブロックコメントは入れ子にできます。C言語とは違い、すでに
/* */のコメントを含んでいるコードを、さらに別のブロックコメントで囲んでも、ちゃんと動きます。
fn main() { /* 今はオフにしてある: println!("古いあいさつ"); /* みんなにあいさつしていた */ */ println!("新しいあいさつ");}実行結果:
新しいあいさつドキュメンテーションコメント
Section titled “ドキュメンテーションコメント”Rustには、///(スラッシュ3つ)で始まる特別なコメントがあります。これはドキュメンテーションコメント(doc comment)と呼ばれ、関数などの説明を書くのに使います。cargo doc を使うと、Rustがこれをブラウザで見られるドキュメントのWebサイトに変換してくれます。
/// 2つの数を足して、その結果を返す。fn add(a: i32, b: i32) -> i32 { a + b}初心者のうちは、ドキュメンテーションコメントはまだ使わなくて大丈夫です。/// はドキュメント用、// は普通のメモ用、とだけ覚えておきましょう。準備ができたら、ドキュメントのページで、書き方、ドキュメントのビルド方法、さらには例をテストに変える方法まで紹介しています。
1. 1行だけオフにする
Section titled “1. 1行だけオフにする”このプログラムは3行を表示します。真ん中の行をコメントにして、1行目 と 3行目 だけが表示されるようにしてください。ヒント:オフにしたい行の先頭に // を付けます。
fn main() { println!("1行目"); println!("2行目"); println!("3行目");}2. 2行まとめてオフにする
Section titled “2. 2行まとめてオフにする”今度は 1行目 から 4行目 までを表示するプログラムで、ブロックコメントを1つだけ使って2行目と3行目をオフにしてください。ヒント:2行目の前で /* を書いてコメントを始め、3行目のあとに */ で閉じます。
解答を見る
fn main() { println!("1行目"); /* println!("2行目"); println!("3行目"); */ println!("4行目");}実行結果:
1行目4行目- コメントはRustが無視するメモです。コードの説明に使いましょう。
//は行コメントを始めます(いちばんよく使う種類です)。/* ... */は、複数行に使えるブロックコメントです。ブロックコメントは入れ子にできます。- よいコメントは、コードを見ればわかることではなく、なぜを説明します。
///は、ドキュメントを生成するためのドキュメンテーションコメントです。
理解度チェック
Section titled “理解度チェック”理解度チェック
1. コードをコンパイルするとき、Rustはコメントをどう扱いますか?
2. /// のドキュメンテーションコメントは何に使いますか?
スコア: 0 / 2
さらに詳しく
Section titled “さらに詳しく”- コメント — The Rust Programming Language 日本語版:
//コメントと、それをふつうどこに書くかについての、公式の短い解説です。 - コメント — Rust by Example 日本語版:式の途中に書くブロックコメントも含め、すべてのコメントの書き方を1つの実行できる例で紹介しています。
- Crates.ioにクレートを公開する — The Rust Programming Language 日本語版:「役に立つドキュメンテーションコメントを行う」の節で、
///と//!、そしてcargo docがそれらをどう使うかを紹介しています。 - How to write documentation — The rustdoc book(英語):ライブラリを書くときに役立つ、よいドキュメンテーションコメントに何を書くべきかのアドバイスです。
- Comments — The Rust Reference(英語):入れ子のブロックコメントも含めた、正確なルールです。