カテゴリ: Swift 更新日: 2025/10/14

Swiftのクロージャとは?初心者向けにやさしく解説!

Swift クロージャとは?初心者向け徹底解説
Swift クロージャとは?初心者向け徹底解説

先生と生徒の会話形式で理解しよう

生徒

「Swiftのクロージャって何ですか?プログラミング初心者なので、全くわかりません…」

先生

「大丈夫ですよ。クロージャは最初はちょっと難しく感じるかもしれませんが、使い方を知るととても便利な機能なんです。」

生徒

「どんな時に使うんですか?そして、どんな見た目なんですか?」

先生

「それでは、Swiftのクロージャについて基本からわかりやすく説明していきましょう!」

1. Swiftのクロージャとは?

1. Swiftのクロージャとは?
1. Swiftのクロージャとは?

Swift(スウィフト)のクロージャとは、簡単に言えば「名前のない関数(無名関数)」のことです。

通常の関数はfuncというキーワードを使って定義しますが、クロージャはその場で関数のような処理を定義して、他の変数や関数に渡すことができます。

初心者の方は、まず「処理のかたまりを変数として持ち運べるもの」と考えておくとわかりやすいです。

2. クロージャの基本的な書き方

2. クロージャの基本的な書き方
2. クロージャの基本的な書き方

まずは基本の形を見てみましょう。


let sayHello = {
    print("こんにちは、世界!")
}

sayHello()

この例では、sayHelloという変数にクロージャを代入しています。そして、それを関数のように呼び出すことができます。

「printの処理」を箱に詰めて、それをsayHelloという名前で呼び出している、というイメージです。

3. 引数つきのクロージャ

3. 引数つきのクロージャ
3. 引数つきのクロージャ

クロージャにも関数と同じように引数を渡すことができます。


let greet = { (name: String) in
    print("こんにちは、\(name)さん!")
}

greet("太郎")

(name: String) inという部分が、引数とその型を定義している部分です。「in」は、引数と実行する処理を分けるキーワードです。

4. 戻り値があるクロージャ

4. 戻り値があるクロージャ
4. 戻り値があるクロージャ

クロージャは戻り値を返すこともできます。次の例を見てみましょう。


let add = { (a: Int, b: Int) -> Int in
    return a + b
}

let result = add(3, 5)
print(result)

(a: Int, b: Int) -> Intの部分で、引数と戻り値の型を指定しています。そしてreturnで結果を返しています。

5. クロージャの省略記法(トレイリングクロージャ)

5. クロージャの省略記法(トレイリングクロージャ)
5. クロージャの省略記法(トレイリングクロージャ)

Swiftでは、コードを簡潔に書けるように「省略記法」が使えます。


let numbers = [1, 2, 3, 4, 5]
let doubled = numbers.map { $0 * 2 }
print(doubled)

mapという関数は、配列の各要素に対して処理を実行します。この{$0 * 2}のように、引数の名前も省略できます。$0は最初の引数を意味します。

6. クロージャはなぜ便利なの?

6. クロージャはなぜ便利なの?
6. クロージャはなぜ便利なの?

クロージャを使うと、ボタンを押したときの処理や、データを読み込んだ後の処理など、「あとから呼び出したい処理」を簡単に指定できます。

特にiOSアプリの開発では、クロージャを使って画面遷移や通信の完了処理を記述することが多く、使いこなせるようになると一気にコードの自由度が上がります。

7. クロージャと変数の関係(キャプチャ)

7. クロージャと変数の関係(キャプチャ)
7. クロージャと変数の関係(キャプチャ)

クロージャは、定義された時点の変数の値を記憶して使うことができます。これを「キャプチャ」といいます。


func makeCounter() -> () -> Int {
    var count = 0
    return {
        count += 1
        return count
    }
}

let counter = makeCounter()
print(counter()) // 1
print(counter()) // 2

makeCounter関数は、クロージャを返しています。このクロージャは、countという変数を記憶していて、呼び出すたびに増えていきます。

8. クロージャはどんな時に使われている?

8. クロージャはどんな時に使われている?
8. クロージャはどんな時に使われている?

Swiftでは、クロージャは以下のような場面でよく使われます:

  • ボタンを押したときの処理(イベント処理)
  • ネットワークからデータを読み込んだ後の処理
  • アニメーションの完了後の処理
  • 配列やリストの並び替え(ソート)

たとえば、あるデータを取得して、それが完了した後に画面を更新する、といったような処理で非常に役立ちます。

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!