F#のコメントの種類
コメントとは、プログラムへの注釈のことです。
プログラムの実行自体には影響はありません。
F#では、次の2種類(+1種類)のコメント法があります(f#4.1 spec 3.2)
・行コメントとは1行のみのコメント
・ブロックコメントでは(*から*)の間の範囲コメント
・(行コメントの一種)XMLドキュメント用のコメント
行コメント
//行コメント。この1行だけがコメントになる
printfn "hello world";;
ブロックコメント1
(* ブロックコメント。
ここもまだコメント
*)
printfn "hello world";;
printfnは、続く文字列を改行付で表示するための関数です。
printfだと改行無しになります。
文字列以外も出力出来るのですが、
本題から外れるので今はそういうものだと思っていてください。
XMLドキュメントを生成するための
///から始まるコメント形式もあります。
このコメントには、すぐ後に続く、色々な定義のための説明を書きます
(関数については後の章で説明します)
行コメント:XMLドキュメント用のコメント
///hello worldと表示する関数
let sayhello () = printfn "hello world";;
コメントのネスト
ブロックコメントは入れ子にすることもできます
ブロックコメント2
let print_hello =
(* コメント開始
(*
入れ子になったコメントのことを
ネストしたコメントと呼んだりする
*)
まだコメントの中
ここがコメント外になる言語は多い
*)
printfn "hello world";;
F#のブロックコメントは賢く、コメント内のリテラルまで認識しています(f#4.1 spec 3.2)
コメント内のリテラルは、通常の文字列と、逐語的文字列(verbatim string)と三重引用符で囲まれた文字列(triple-quoted-string)を認識します。
f#2.0までは有効だった次のコードも三重引用符で囲まれた文字列を認識するため、シンタックスエラーになります。
シンタックスエラーになる例
(* """ *) //三重引用符が閉じられていないのでシンタックスエラー
ブロックコメント3
(* この行はすべてコメント:let s = "*)" *)
ちょっとした裏技ですが、行コメントと組み合わせると
一定の範囲を簡単にコメントアウトできます。
TIPS
(* ←このコメントをON/OFFする
printfn "hello world";;
// *)
ドキュメント用のコメントの使い方
-ここは、最初は飛ばしても問題ないです-
///の形式でコメントを残しておくと
F#コンパイラがプログラムのコメントを抽出して
XMLドキュメントとして出力する機能が使えます。
詳細は英語ですが
こちらのページを確認ください。