如何在 Kotlin 中将函数作为参数传递给另一个函数?
你好!我刚开始在 Java 之后学习 Kotlin,遇到了一个问题。
在 Java 中,我习惯使用接口或函数式接口(例如 `Consumer`、`Runnable`)来将行为传递给方法。在 Kotlin 中,据我所知,函数是一等公民,可以直接传递。
但我无法写出正确的语法。假设我有一个简单的数字列表,我想编写一个函数 `processNumbers`,它接受一个列表和一个处理每个元素的函数。
这是我尝试做的:
```kotlin
fun processNumbers(numbers: List, operation: ???) {
for (number in numbers) {
operation(number)
}
}
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// 想在这里传递一个输出数字平方的函数
processNumbers(numbers, println(it * it)) // 错误!
}
```
我不明白应该为参数 `operation` 指定什么类型。我尝试写 `(Int) -> Unit`,但遇到了错误。