如何在 Kotlin 中传递多个函数实现?

How to pass multiple function implementations in Kotlin?

阅读 Kotlin 中的 higher order functions,我看到了一种用于传递函数实现(“内联”)的语法,如下所示:

calculate(4, 5) { a, b -> a * b }

a, b -> a * b部分其实就是函数传递给函数。完整片段:

fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int {  // 1
    return operation(x, y)                                          // 2
}

fun sum(x: Int, y: Int) = x + y                                     // 3

fun main() {
    val sumResult = calculate(4, 5, ::sum)                          // 4
    val mulResult = calculate(4, 5) { a, b -> a * b }               // 5
    println("sumResult $sumResult, mulResult $mulResult")
}

考虑拥有一个接收 2 个函数的函数,例如

fun calculate2(x: Int, y: Int, operation: (Int, Int) -> Int, operation2: (Int, Int) -> Int): Int {
    //...
}

如何传递 2 个函数实现 - “内联”(无需先声明函数)?

尝试 like the following 时出现编译错误:

calculate(4, 5) { a, b -> a * b} {a, b -> a + b }

截图:

calculate(4, 5, { a, b -> a * b }, { a, b -> a + b })

calculate(4, 5, { a, b -> a * b }) { a, b -> a + b }