言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Swift辞典

  1. トップページ
  2. Swift辞典
  3. コメント(// と /* */)

コメント(// と /* */)

『Swift』のコメントは『//』による一行コメント、『/* */』によるブロックコメント、そしてドキュメントコメントの『///』と『/** */』の4種類があります。ドキュメントコメントはMarkdown記法に対応しており、Xcodeのクイックヘルプ(Option+クリック)でリッチな表示が確認でき、Appleのドキュメント生成ツールやSwift-DocCで自動ドキュメントを生成できます。

構文

// 一行コメント — // から行末までがコメントになります。
let x = 10 // 行末コメント — コードの後にも書けます。

/* ブロックコメント — /* から */ までの範囲がコメントになります。
   Swift のブロックコメントは入れ子にできます。 */

/* 外側 /* 内側 */ 外側の続き — Swift ではこれが有効です */

/// 行ドキュメントコメント — 直後の宣言(関数・クラス・構造体等)を文書化します。
/// Markdown 記法が使えます。Xcode のクイックヘルプに表示されます。
func exampleFunction() {}

/** ブロックドキュメントコメント — /// と同じ役割です。
 * 複数行をまとめて書くことができます。
 * Xcode のクイックヘルプに表示されます。
 */
func blockDocFunction() {}

コメントの種類

種類書き方概要
一行コメント// テキスト『//』から行末までがコメントになります。最も頻繁に使うコメントです。
ブロックコメント/* テキスト */複数行にまたがるコメントを書くときに使います。Swiftでは入れ子にできます。
行ドキュメントコメント/// テキスト直後の宣言を文書化します。Markdown記法に対応。Xcodeのクイックヘルプに表示されます。
ブロックドキュメントコメント/** テキスト */『///』のブロック版です。複数行をまとめて書くことができます。

ドキュメントコメントのMarkdown記法と主なキーワード

Swiftのドキュメントコメントは標準のMarkdown記法に対応しています。また、Xcodeが解釈する特定のキーワード(『- Parameter』等)を使うことで、クイックヘルプのUI上で専用の表示領域に整形されます。

記法概要
- Parameter 名前: 説明関数の引数を説明します。引数ごとに1行書きます。
- Parameters: / - 名前: 説明複数の引数をグループ化して書く別の書き方です。
- Returns: 説明戻り値の型と内容を説明します。
- Throws: 説明スローされる可能性のあるエラーを記述します。
- Note: テキスト補足情報や注意事項を記述します。
- Warning: テキスト警告事項を記述します。Xcodeで強調表示されます。
- Important: テキスト重要な注意事項を記述します。
- Example: テキスト使用例を記述します。
- SeeAlso: 参照先関連する宣言や外部リソースへの参照を記述します。

コメントを書くべき場所・書かなくてよい場所

判断場面理由
書くべき「なぜこう実装したか」の理由コードを読むだけではわからない設計意図やトレードオフを残しておくと、将来の自分や他の開発者が助かります。
書くべき複雑なアルゴリズムや計算式何をしているか一見でわかりにくい処理には、動作の概要を補足します。
書くべき公開API(関数・クラス・構造体・プロトコル)『///』でドキュメントコメントを付けるとXcodeのクイックヘルプやSwift-DocCのHTMLドキュメントに反映されます。
書くべきデバッグ中の一時的な無効化コメントアウトした理由や期限を残しておくと、後で削除し忘れるリスクが減ります。
書かなくてよいコードを読めば明らかな処理自明な説明はノイズになります。変数名・関数名をわかりやすくすれば不要になります。
書かなくてよい変更履歴・削除したコードバージョン管理(git)があるため、コメントに古いコードや変更日を残す必要はありません。

サンプルコード

コメントの書き方(一行・ブロック・ドキュメントコメント)を確認するサンプルコードです。

comment_basic.swift
// comment_basic.swift — Swift のコメント構文の基本的な使い方です。

let items = ["widget", "gadget", "device"]
let prices = [1200, 3500, 800] // 税抜価格

/* 合計を計算して出力します */
let total = prices.reduce(0, +)

for (item, price) in zip(items, prices) {
    print(String(format: "%-10@ %5d yen", item, price))
}

print("----------")
print(String(format: "%-10@ %5d yen", "Total", total))
$ swift comment_basic.swift
widget      1200 yen
gadget      3500 yen
device       800 yen
----------
Total       5500 yen
comment_doc.swift
// comment_doc.swift — ドキュメントコメントを使って関数を文書化する例です。
// Xcode で Option+クリックするとクイックヘルプが表示されます。

/// 整数配列の平均値を計算して返します。
///
/// 配列が空の場合は `nil` を返します(クラッシュしません)。
///
/// - Parameter values: 平均を計算する整数の配列
/// - Returns: 平均値(`Double`)。配列が空の場合は `nil`。
///
/// ## Example
///
/// ```swift
/// let avg = calculateAverage([85, 92, 78, 95, 60])
/// print(avg!) // 82.0
/// ```
func calculateAverage(_ values: [Int]) -> Double? {
    guard !values.isEmpty else {
        // 空配列は計算不能なので nil を返します
        return nil
    }

    let sum = values.reduce(0, +)

    /* 整数除算を避けるために Double にキャストします */
    return Double(sum) / Double(values.count)
}

/** ブロックドキュメントコメントを使った別の書き方です。
 * /// と同じ内容をブロック形式で書けます。
 *
 * - Parameter value: 変換する整数値
 * - Returns: パーセンテージ文字列(例: "85%")
 */
func formatPercent(_ value: Int) -> String {
    return "\(value)%"
}

// 動作確認
let scores = [85, 92, 78, 95, 60]

if let avg = calculateAverage(scores) {
    print("Average: \(avg)")
}

print(formatPercent(95))

// 空配列の場合
let empty: [Int] = []
print("Empty: \(calculateAverage(empty) as Any)")
$ swift comment_doc.swift
Average: 82.0
95%
Empty: nil
comment_nested.swift
// comment_nested.swift — Swift ではブロックコメントを入れ子にできます。

/* 外側のコメント
   /* 内側のコメント */
   外側の続き — Swift ではこれが有効です(C/C++ とは異なる)。
*/

let value = 42
print("value: \(value)")
$ swift comment_nested.swift
value: 42

概要

Swiftのコメントは通常コメント(『//』『/* */』)とドキュメントコメント(『///』『/** */』)の2グループに分かれます。Swiftのブロックコメントはにネストに対応している点がC言語との違いで、既存のコメントを含むコードブロックをまとめてコメントアウトする場合に便利です。

ドキュメントコメント(『///』と『/** */』)はMarkdown記法に対応しており、『- Parameter』『- Returns』『- Throws』などのキーワードを使うとXcodeのクイックヘルプで整形された表示になります。Swift-DocCを使うとHTMLドキュメントを自動生成でき、Apple製フレームワークと同様のドキュメントサイトを構築できます。パブリックAPIには積極的にドキュメントコメントを付けておくと、Xcodeのコード補完時にも情報が表示されて利便性が高まります。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。