カテゴリ: Kotlin 更新日: 2025/07/18

Kotlinのスコープ関数まとめ!let・apply・run・also・withの違いと使い方

Kotlinのスコープ関数まとめ!let・apply・run・also・withの違いと使い方
Kotlinのスコープ関数まとめ!let・apply・run・also・withの違いと使い方

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

生徒

「Kotlinのコードでletapplyっていうのをよく見かけるんですけど、何をしてるんですか?」

先生

「それは『スコープ関数』と呼ばれるもので、オブジェクトの使い方を少し便利にしてくれる関数です。」

生徒

「たくさんあって違いがわからないです…どれを使えばいいのか迷います。」

先生

「確かに種類が多くて混乱しがちですね。今回は letapplyrunalsowith の5つをやさしく解説していきます!」

1. スコープ関数とは?Kotlinでよく使う便利な関数

1. スコープ関数とは?Kotlinでよく使う便利な関数
1. スコープ関数とは?Kotlinでよく使う便利な関数

スコープ関数とは、オブジェクトに対して何か処理をしたいときに使える関数で、Kotlinが用意している便利機能のひとつです。

以下の5種類がよく使われます。

  • let
  • apply
  • run
  • also
  • with

この5つは書き方が似ていますが、目的や動作に少しずつ違いがあります。

2. letの使い方と特徴

2. letの使い方と特徴
2. letの使い方と特徴

letは、変数の値を一時的に別の名前(通常はit)で扱って処理したいときに使います。


val name = "taro"
name.let {
    println("名前は ${it.uppercase()} です")
}

letは、関数の最後の値を返すという特徴もあります。

Nullチェックや、処理の一時的なブロックに使うのが定番です。

3. applyの使い方と特徴

3. applyの使い方と特徴
3. applyの使い方と特徴

applyは、オブジェクトの初期化に使われることが多いスコープ関数です。


val user = StringBuilder().apply {
    append("Taro")
    append(" Yamada")
}
println(user.toString())

thisを使って自分自身を指し、最後に自分自身(オブジェクト)を返すのが特徴です。

4. runの使い方と特徴

4. runの使い方と特徴
4. runの使い方と特徴

runは、ある値を使って処理して結果を返すときに使います。


val result = "kotlin".run {
    this.uppercase()
}
println(result)

letと似ていますが、thisが使えることと、よりシンプルに処理だけを書きたいときに向いています。

5. alsoの使い方と特徴

5. alsoの使い方と特徴
5. alsoの使い方と特徴

alsoは、何かをしてから同じオブジェクトを返したいときに使います。

ログ出力やデバッグなど、「ついでに処理」を追加するのに向いています。


val list = mutableListOf("A", "B").also {
    println("リストの中身: $it")
    it.add("C")
}

letと違って、最後にit(オブジェクトそのもの)を返します。

6. withの使い方と特徴

6. withの使い方と特徴
6. withの使い方と特徴

withは、あるオブジェクトに対して複数の処理をしたいときに使います。

他のスコープ関数とは違い、拡張関数ではなく普通の関数です。


val sb = StringBuilder()
val result = with(sb) {
    append("Hello, ")
    append("World!")
    toString()
}
println(result)

thisでオブジェクトを参照し、最後に処理結果を返します。

7. スコープ関数の違いを表で整理しよう

7. スコープ関数の違いを表で整理しよう
7. スコープ関数の違いを表で整理しよう

スコープ関数を表で比較すると次のようになります。

関数レシーバ戻り値主な使いどころ
letit処理の結果一時的な処理
applythisオブジェクト自身初期化
runthis処理の結果結果の取得
alsoitオブジェクト自身デバッグ
withthis処理の結果複数の操作

8. どのスコープ関数を選ぶべき?

8. どのスコープ関数を選ぶべき?
8. どのスコープ関数を選ぶべき?

初心者のうちは混乱するかもしれませんが、目的に応じて選ぶと覚えやすくなります。

  • 何か一時的な処理をしたい → let
  • オブジェクトを作ってすぐに設定 → apply
  • 中で値を計算して取得 → run
  • ついでの処理やログ出力 → also
  • 同じオブジェクトに複数の操作 → with

どれも「自分に合った処理の書き方」を選べるのがKotlinのスコープ関数の魅力です。

カテゴリの一覧へ
新着記事
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)とは?便利な特徴と使い方を初心者向けにやさしく解説!