関数にLambdaを渡す
ラムダを引数として渡し、trailing lambda構文を使用します。
「関数にLambdaを渡す」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。
ラムダを受け取る関数
高階関数の宣言
fun applyTwice(n: Int, op: (Int) -> Int): Int {
return op(op(n))
}
println(applyTwice(3, { it * 2 })) // 12末尾ラムダ構文
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }かっこなしの末尾ラムダ
fun execute(block: () -> Unit) = block()
// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }ラムダ変数を渡す
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double)) // 20::による関数参照
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple)) // 18複数のラムダパラメーター
fun transform(
value: Int,
before: (Int) -> Int,
after: (Int) -> Int
) = after(before(value))
println(transform(5, { it * 2 }, { it + 1 })) // 11filter にラムダを渡す
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens) // [2, 4, 6]高階関数の連結
val result = (1..10)
.filter { it % 2 != 0 } // odds
.map { it * it } // square
.take(3) // first 3
println(result) // [1, 9, 25]ラムダによる変数のキャプチャ
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total) // 10関数からラムダを返す
fun multiplierOf(factor: Int): (Int) -> Int {
return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5)) // 10
println(triple(5)) // 15簡単な確認
まとめ
よくある質問
「関数にLambdaを渡す」レッスンは無料ですか?
はい。「関数にLambdaを渡す」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。
「関数にLambdaを渡す」で何を学びますか?
ラムダを引数として渡し、trailing lambda構文を使用します。 ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Kotlin Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「関数にLambdaを渡す」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このKotlin Academyレッスンでコードを書いて実行できますか?
はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Lambdaとは?構文と型
- 関数にLambdaを渡す
- it:暗黙のパラメータ
- コレクションのfilter、map、find