🔇

【Ruby】コメントアウト

2024/01/29に公開

はじめに

コメントアウトできない、どうやるんだっけという質問をちょくちょく受けるので、自分自身のアウトプットがてら、少しまとめておこうと思います。

環境

  • OS: Windows
  • IDE: Cloud9

コメントアウトとは

コメントコメントアウトとは、プログラム内にコードとは異なる目的で書かれるもので、実行時には無視されるものです。コードの意図や動作を他の開発者に伝えるための注釈や説明文として使われます。また、特定のコードを一時的に無効化し、実行から除外するためにも使用されます。

種類

Rubyにおけるコメント、コメントアウトの主な記法は以下の2種類です。

#(シャープ)
=beginで始めて=endで終わる

単一行のコメントか、複数行のコメントアウトかというところですね。
加えて、以下のようなHTMLなどで使われるコメントアウトの記法も挙げておきます。

<!---->

では順にみていきましょう。

記述法

Rubyにおけるコメントやコメントアウトの使い分けについて説明します。

  • #(シャープ)
    まず、#は単一行コメントを表します。この記号の後ろに来るテキストはすべて、その行の終わりまでコメントと見なされます。これは1行だけのコメントを追加する際に使われます。
# これは単一行コメントです。
puts "Tarou" # Tarouと出力する。これも単一行コメントです。
  • =begin =end
    次に、=begin=endを使ったコメントアウトです。これは複数行のコメントを記述する際に使用されます。=beginで始まり、=endで終わるまでの間に入るすべての行がコメントとして扱われます。
=begin
これは複数行の
コメントアウトです
=end
  • <!---->
    さらに、HTMLや一部のプログラミング言語では、<!-- -->という記法でコメントアウトを行います。この間に入るテキストはコードとして認識されないため、実行時には無視されます。
<!-- これはHTMLのコメントアウトです -->
<p>これは普通のテキストです</p>

(コメントアウトしたい行の頭にカーソルを合わせて、Macならcommand⌘ + /を、WindowsならCtrl + /を押すとコメントアウトされます。またもう一度あたまで同じショートカットキーを押すとコメントアウトは解除され、元に戻ります。)

使用例を少し

例えばモデルファイルでコメントを書きたいとき。モデルファイルは.rb、Rubyですね。
ということは、単一行なら#、複数行なら=begin =endです。

models/post.rb
class Post < ApplicationRecord
  =begin
  belongs_to :user
  has_many :favorites, dependent: :destroy
  has_many :post_comments, dependent: :destroy
  =end

  # タイトルが存在すること
  validates :title, presence: true
  # 本文が存在すること、200文字以下であること
  validates :body,presence:true,length:{maximum:200}
end

次はビューファイルでの使用例。ファイルが.html.erbの場合。これはRuby on Railsで使われるファイル形式、RubyとHTML両方の記法を含むものです。
例えば、エラー等で一時的に特定の記述を無効化したい、コメントアウトしたいという場合は以下のようになります。

views/posts/index.html.erb
6  <%= post.user.name %>
7  <!--<%= post.title %>--> # まずHtmlの記法でコメントアウト
8  <!--<%#= post.body %>--> # 次に、%のうしろに#を追加
9  # これで8行目は実行時に除外されます。

僕も最初、コメントアウトがうまくいかず確認ができないで困っていた時がありました。コメント、コメントアウトは、付け方や付ける位置によってさらにエラーが発生することもありますし、適した記法でなければうまくいかないのではじめはむずかしいところもありますよね。
書き方、使い方様々で案外興味深いです。

最後まで読んでいただきありがとうございました。
新しい情報はどんどんキャッチしていきたいので、プラスの情報や修正点等ありましたらご連絡いただけますと幸いです。

Discussion