コメントの書き方

C言語 / C++

// 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

複数行コメントはネスト不可。

C言語では、単一行コメントは正式にはC99以降の規格。

Go言語

// 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

複数行コメントはネスト不可。

Java

// 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

複数行コメントはネスト不可。

Scala

// 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

Javaと違い、複数行コメントはネストが可。従って、コメントの中も /* */ の対を対応させる必要がある。

Groovy

// 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

複数行コメントはネスト不可。

PHP

// 単一行コメント
# 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

複数行コメントはネスト不可。

コメント | PHP Manual
http://php.net/manual/ja/language.basic-syntax.comments.php

Smarty

{*
  コメントアウトされたコード
  コメントアウトされたコード
*}

テンプレートの中に <!-- --> を使うと、ブラウザへのレスポンスにもそのコメントが送信されてしまうが、{* *} の形式なら、レスポンスに含まれない。

Python

# 単一行コメント

複数行のコメントはない。そのかわり、文字列を置いてもプログラムの意味が変わらない箇所で、複数行の文字列リテラルを置くことで、複数行コメントの代わりにすることができる。

'''
複数行コメント
複数行コメント
'''

Ruby / JRuby

# 単一行コメント
=begin
  複数行コメント
  複数行コメント
=end

文字列や正規表現、%w表記の中など、コメント開始以外の # もありえる。

複数行コメントの =begin, =end は行の先頭に書く必要があり、コメントは =end のある行の行末まで続く。

コメント | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2flexical.html#comment

Perl

# 単一行コメント
=comment
  複数行コメント
  複数行コメント
=cut

# は常にコメント開始の印というわけではなく、文字列や正規表現の中であったり、配列の最後の要素番号を取得する $#arr のようなものもある。

sh (シェルスクリプト)

# 単一行コメント

以下のような書き方で複数行のコメントアウトに近いことはできる。

<<EOF
  複数行コメント
  複数行コメント
EOF

# または

cat <<EOF >/dev/null
  複数行コメント
  複数行コメント
EOF

ただし、この書き方はあくまでヒアドキュメントなので、シェルスクリプトはこれをヒアドキュメントとして文字列に組み立てるところまでは実行する。

つまり以下のように書くと、 DEBUG という出力はされるし、見えないけど ls コマンドも実行される。

<<EOF
コメントあいうえお
$(echo "DEBUG" >&2; ls)
コメントかきくけこ
EOF

なので、実行してほしくない部分を <<EOFEOF で囲んでも、思わぬコードが実行されてしまうリスクがある。

Haskell

-- 単一行コメント
{-
  複数行コメント
  複数行コメント
-}

R言語

# 単一行コメント

JavaScript

// 単一行コメント
/*
  複数行コメント
  複数行コメント
*/

CoffeeScript

# 単一行コメント
###
  複数行コメント
  複数行コメント
###

CSS

/*
  複数行コメント
  複数行コメント
*/

単一行コメントのための記法はない。

関連

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。