Menu
Coddy logo textTech

関数を渡す

CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 28/63。

高階関数は、関数値を受け取るか、関数値を返します。関数型を持つ関数パラメーターを宣言し、それをヘルパー内で呼び出します。最後の引数がラムダの場合、Kotlinではその中かっこを呼び出しの括弧の後に置けます。

fun applyTwice(n: Int, operation: (Int) -> Int): Int {
    return operation(operation(n))
}

main の内部:

println(applyTwice(2) { it + 3 })

最初の呼び出しで 2 が 5 に変わり、2 回目の呼び出しで 5 が 8 に変わります。

関数のパラメーターは、中間結果を使って繰り返し呼び出すことができます。

challenge icon

チャレンジ

中級

パラメーター value: Intを使用してtwiceDoubleを完成させてください。用意されているapplyTwiceヘルパーと、2倍にするラムダを使用してください。2倍にする操作を2回適用した結果を返してください。

上記でより厳しい境界が指定されていない限り、コレクションは各レベルで最大100個の要素を含み、整数の引数および整数コレクションの値は-1000から1000の範囲です。解析用に提供されるテキストには、説明されているように無効な表現や範囲外の表現が含まれる場合があります。

型Intの値を返してください。提供されている入出力コードは変更しないでください。スカラー引数は1行に1つずつ読み取られます。リストは要素数に続いて各要素が記述され、マップはエントリ数に続いて各キーと値が記述されます。ネストされたリストでは、各行について要素数と要素の形式が繰り返されます。提供されているmainは、戻り値の後に改行を1つ出力します。リストにはKotlin標準の角括弧形式を使用し、追加のラベルは出力しないでください。

自分で試してみよう

fun applyTwice(n: Int, operation: (Int) -> Int): Int {
    return operation(operation(n))
}
fun twiceDouble(value: Int): Int {
    // ここに解答を書いてください。
    return 0
}
fun main() {
    val value = readln().toInt()
    println(twiceDouble(value))
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド