カテゴリ: Kotlin 更新日: 2025/10/10

Kotlinのスコープ関数の戻り値の違いと使い分けを初心者向けに解説!

Kotlinのスコープ関数の戻り値の違いと使い分け
Kotlinのスコープ関数の戻り値の違いと使い分け

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

生徒

「Kotlinのスコープ関数っていろいろありますけど、何がどう違うんですか?特に戻り値の違いがよくわかりません…」

先生

「たしかにlet・run・apply・also・withは似ているようで、実は戻り値が違うんですよ。そこをしっかり理解すれば、使い分けもスムーズになりますよ!」

生徒

「なるほど…!戻り値で使い方が変わるってことですか?」

先生

「そのとおり!今回は初心者でもわかるように、それぞれの違いや使い方をゆっくり解説していきますね!」

1. スコープ関数とは?

1. スコープ関数とは?
1. スコープ関数とは?

まず「スコープ関数」とは、Kotlinでよく使われる便利な関数のことです。あるオブジェクトに対して、一時的に何か処理をしたいときに使います。

代表的なスコープ関数は、let・run・apply・also・withの5つです。使い方は似ていますが、戻り値や処理の書き方に違いがあります。

2. スコープ関数の戻り値の違いとは?

2. スコープ関数の戻り値の違いとは?
2. スコープ関数の戻り値の違いとは?

Kotlinのスコープ関数を使いこなすカギは「戻り値の違い」です。戻り値とは、関数を使ったあとに何が返ってくるか、ということです。

  • let → ラムダ式の「最後の式の結果」を返す
  • run → ラムダ式の「最後の式の結果」を返す
  • apply → 「元のオブジェクト(this)」を返す
  • also → 「元のオブジェクト(it)」を返す
  • with → ラムダ式の「最後の式の結果」を返す

文字だけだとわかりづらいので、次に具体例を見てみましょう!

3. letの戻り値と使い方

3. letの戻り値と使い方
3. letの戻り値と使い方

letは「何かを加工して使いたい」場面に向いています。戻り値はラムダの最後の式になります。


val result = "kotlin".let {
    it.uppercase()
}
println(result)

KOTLIN

let加工した結果を取り出すときに便利です。

4. runの戻り値と使い方

4. runの戻り値と使い方
4. runの戻り値と使い方

runletと同じように、最後の式の結果を返します。ただし、thisでオブジェクトにアクセスするのが違いです。


val message = "kotlin".run {
    this.reversed()
}
println(message)

niltok

runthisがメインなので、クラスの初期化や一括設定にもよく使われます。

5. applyの戻り値と使い方

5. applyの戻り値と使い方
5. applyの戻り値と使い方

applyは「元のオブジェクトそのもの」が戻り値になります。オブジェクトを設定してから、そのまま戻したいときに使います。


val sb = StringBuilder().apply {
    append("Hello")
    append(", Kotlin")
}
println(sb.toString())

Hello, Kotlin

apply設定をまとめて書くときに便利です。

6. alsoの戻り値と使い方

6. alsoの戻り値と使い方
6. alsoの戻り値と使い方

alsoapplyと同じく、元のオブジェクトが戻ってきます。ただし、使い方はletと同じようにitで書きます。


val list = mutableListOf("A", "B").also {
    it.add("C")
}
println(list)

[A, B, C]

alsoは「処理の途中で確認やログを入れたい」ときに向いています。

7. withの戻り値と使い方

7. withの戻り値と使い方
7. withの戻り値と使い方

withは少し特殊で、対象のオブジェクトを引数にして、ブロック内はthisで操作します。戻り値は最後の式の結果です。


val length = with("Kotlin") {
    println("文字数は${length}です")
    length
}
println(length)

文字数は6です
6

withは「特定のオブジェクトに対して複数の処理をしたいとき」に使います。

8. 戻り値で使い分けるコツ

8. 戻り値で使い分けるコツ
8. 戻り値で使い分けるコツ

ここまでのポイントをおさらいしましょう。Kotlinのスコープ関数の使い分けは、「何を返したいか」が大きなポイントです。

  • letrun:処理の結果を返したいとき
  • applyalso:元のオブジェクトを返したいとき
  • with:少し特殊だが、処理の結果を返す

たとえば、何かを加工した結果を使いたいならletrunオブジェクトの初期設定をしたいならapplyalsoが合っています。

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