我可以编写带有显式类型的 lambda 函数 id_Int
和 id_Boolean
。而且我可以编写带有类型参数的函数 identity
。那么,我能否编写带有类型参数的 lambda 函数呢?
fun testFuncInt(f: (Int) -> Int): Int = f(1) + 2
val id_Int = { x: Int -> x }
fun testFuncBoolean(f: (Boolean) -> Boolean): Boolean = !f(false)
val id_Boolean = { x: Boolean -> x }
fun <T> identity(x: T) = x
fun main(args: Array<String>) {
println(testFuncInt(id_Int))
println(testFuncInt(::identity))
println(testFuncBoolean(id_Boolean))
println(testFuncBoolean(::identity))
}
suspend
函数不起作用,因为它们必须是lambda而不是匿名函数。请参见https://discuss.kotlinlang.org/t/anonymous-suspending-functions/6000。 - Merk