ここではプログラムを理解しやすくしたり,メモを残したり,あるいはプログラムの挙動を確認するために用いられる「コメント」について説明します. コメントはRubyに限らずプログラムで一般的に使われるものです.
もくじ
コメントとは
Rubyのプログラムは,Ruby(プログラミング言語)を知っていれば,いつもすぐに理解できるとは限りません(英語を知っているからといって,どんな文章でもすぐに理解できるわけではありませんよね). そこでプログラムには,その理解を助けるために「コメント」(注釈,解説)を適宜入れておくことが一般的です. 課題で提出するプログラムにもコメントを自然言語(日本語あるいは英語)で適宜書いておくようにして下さい.
なおコメントは他人に説明するためだけに書くものではありません. プログラムは,書いているときには,その意味は理解できている(頭の中に入っている)でしょうから, 自分のためだけであれば書く必要はないと思うかもしれません. しかし自分で書いたプログラムであっても,後から見ると何を書いているのか分からなくなることが少なくありません. そのためにも適切にコメントを入れておくことは重要です(マジメに書かないとコメントの意味が分からなくなってしまいますので,とにかく書けばよいというものではありません).
Rubyでは「#」から行末までは原則としてコメントとみなされます(例外もあります.それについては今後紹介します). 行の途中に「#」を入れても構いません.「#」を2つ以上並べても構いません.そこから行末までがコメントとみなされます.
なおコメントは人間が読むものであって,プログラムとしては解釈されません. プログラムの実行の際にはコメントは無視されます(つまりコメントは書いても書かなくてもプログラムとしては同等です). コメントはプログラミング言語の文法に縛られることなく自由に書くことができます.
## ## [コメントの例] ## ここではコメントの書き方を示しています ## 本来「分かりきった処理」にコメントを付ける必要はありません ## コメントの先頭の「#」の個数には本質的には意味はありません ## (形式にバリエーションを与えることで独自に意味付けできます) ## # 前に100進む forward(100) turn(90) # 左に90度回転する forward(200) # 前に200進む
全ての行にコメントを書く必要はありません. 書きすぎるとプログラムが却って分かりにくくなるでしょう(上の例はコメントの書き方を示しているもので,本来の意味では適切なコメントではありません). 一連の処理のまとまりに対する説明, 解釈が難しいであろう部分に対する説明などを適宜入れるようにしましょう.
なおRubyでは「=begin」...「=end」で挟まれた行もコメントとして扱われます (「=begin」は「=end」それぞれ単独の行の左端に書く必要があります). このコメントには特別な用途があります(それを気にしなくても使えます).
日本語の入力
コメントでは日本語を使うことも少なくないでしょう. 仮想型端末のLinuxで日本語を入力するには次のようにします.
- 予め言語を「Japanese (Mozc)」に設定します
(※ログインするごとに1回だけ設定します)
言語設定 画面右上の『ja▼』からメニューを開いて選択する [Ctrl]+[Space]
- 日本語と英語の入力を切り替えるには次のようにします.
「英語/日本語」の入力切替
[半角/全角]を押す 画面右上の『A▼』からメニューの「Input Mode」で選択(※)
コメントアウト
プログラムは前から順に書いて一度で完成させられるとは限りません(文章でもそうですよね).何回も書き換えることがあります.
そのとき,書き直す部分は削除すればよいのですが, 書き直す前の状態を参考のためにメモとして残しておきたいこともありますし, プログラムがおかしな挙動をするときに,プログラムの一部を一時的に取り除きたくなることもあります(必要であれば修正して再利用するために削除はしたくない).
このような場合に「コメント」を使うことができます. コメントにしてしまえば,その部分は「存在しないモノ」にしてしまうことができます. 本来コメントにはプログラムの説明を書くのですが,プログラム作成の過程では,このような用途にコメントを使うこともしばしばあります. このようなとき,当該部分を「コメントアウト」するといいます.
# コメントアウトの例 # 100だったのを120に変更したことを記録した場合 # 「was」は英語の"was"(このように書く必然性はとくにない) forward(120) # was forward(100) # circle(100,ROTATE_RIGHT) # 円を描画していたが,一旦取り除いてみた turn(120)
なおコメントアウトしたところをずっと残しておくことは止めておきましょう. 最終的に不要なら削除するか,残す意味があるなら正式なコメントとして読めるようにしておきます.