0Pricing
Kotlin Academy · レッスン

it:暗黙のパラメータ

単一パラメータのラムダで、暗黙のitパラメータを使用します。

「it:暗黙のパラメータ」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。

暗黙の it

ラムダがパラメーターをちょうど1つ持つ場合、その宣言を省略し、it として参照できます。短いパイプラインでは記述量を減らせます。

forEach の it

典型的な例は forEach です。forEach は各要素を it として渡します。

fun main() {
    listOf(1, 2, 3).forEach { println(it) }
}

map の it

入力として it を使い、各要素を変換します。

fun main() {
    val doubled = listOf(1, 2, 3).map { it * 2 }
    println(doubled) // [2, 4, 6]
}

filter の it

filter は、ラムダが true を返す要素を残します。it は現在の要素を表します。

fun main() {
    val evens = listOf(1, 2, 3, 4, 5).filter { it % 2 == 0 }
    println(evens) // [2, 4]
}

it を使わない場合

ラムダ本体が単純でない場合は、パラメーターを明示的に名前付けしてください。省略形の it よりも、名前を付けたほうが意図を明確にできます。

fun main() {
    val users = listOf("alice", "bob")
    // OK
    users.forEach { println(it) }
    // Clearer with a name when body is bigger
    users.forEach { name ->
        println("User: $name length=${name.length}")
    }
}

ネストしたラムダでの it

ネストしたラムダでは注意が必要です。それぞれの it は最も内側のラムダに束縛されます。パラメーターに名前を付けると曖昧さを避けられます。

fun main() {
    val nested = listOf(listOf(1, 2), listOf(3, 4))
    // Both lambdas use it — confusing!
    nested.forEach { outer ->
        outer.forEach { inner ->
            println("$outer -> $inner")
        }
    }
}

文字列メソッドでの it

よくあるパターンは、it を使って文字列を filter または map することです。

fun main() {
    val names = listOf("Alice", "bob", "Charlie")
    val upper = names.map { it.uppercase() }
    println(upper)
}

プロパティでの it

操作を連結するとき、it.property はフィールドにアクセスするすっきりした方法です。

data class Person(val name: String, val age: Int)
fun main() {
    val people = listOf(Person("Ana", 20), Person("Ben", 35))
    val names = people.map { it.name }
    println(names) // [Ana, Ben]
}

it を使った述語

述語(Boolean を返すラムダ)は、it を使うと自然に読めます。

fun main() {
    val nums = listOf(1, 4, 7, 9)
    println(nums.any { it > 5 }) // true
    println(nums.all { it > 0 }) // true
    println(nums.none { it < 0 }) // true
}

it を使うカスタム関数

パラメーターを1つ持つラムダを受け取る高階関数では、it が自動的に使えるようになります。

fun <T> List<T>.firstWhere(predicate: (T) -> Boolean): T? {
    for (item in this) if (predicate(item)) return item
    return null
}
fun main() {
    val n = listOf(3, 8, 4, 5).firstWhere { it > 5 }
    println(n) // 8
}

スコープ関数内の it

一部のスコープ関数(let、also)はレシーバーを it として扱い、別の関数(apply、run)は this として扱います。レシーバーを明示的に参照するかどうかに応じて選択してください。

fun main() {
    val name: String? = "Kotlin"
    name?.let { println("hello $it") } // it = name
}

簡単な確認

ラムダパラメーターに名前を付ける代わりに、it を使えるのはいつですか?

まとめ

it は、パラメーターを1つだけ持つラムダで、その唯一のパラメーターに付けられる暗黙の名前です。短いラムダを簡潔にするために使用してください。本体が長くなった場合や、ネストによって混乱する可能性がある場合は、パラメーターに明示的な名前を付けてください。

よくある質問

「it:暗黙のパラメータ」レッスンは無料ですか?

はい。「it:暗黙のパラメータ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。

「it:暗黙のパラメータ」で何を学びますか?

単一パラメータのラムダで、暗黙のitパラメータを使用します。 ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kotlin Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「it:暗黙のパラメータ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKotlin Academyレッスンでコードを書いて実行できますか?

はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Lambdaとは?構文と型
  2. 関数にLambdaを渡す
  3. it:暗黙のパラメータ
  4. コレクションのfilter、map、find
← Kotlin Academyに戻る