Closed5

Kotlin で 高階関数 (引数に関数)

tkttkt
class FuncSample(
    private val a: Int,
    private val b: Int,
    private val sumFunc: (a: Int, b: Int) -> Int,
) {
    fun sum(): Int {
        return sumFunc(a, b)
    }
}
tkttkt
fun sum(a: Int, b: Int): Int {
     return a + b
}
FuncSample(5, 5, ::sum).sum()
// -> 10
tkttkt
class Calculator {
    companion object {
         fun sum(a: Int, b: Int): Int {
             return a + b
        }
    }
}

FuncSample(5, 5, { a, b ->
    Calculator.sum(a, b)
}).sum()
// -> 10

. 経由でクラス内の関数等を渡す場合はそのままだと渡らないが、この形で渡すと使える

このスクラップは2021/02/17にクローズされました