kotlin中有一段简单的代码:
fun repeat(
times: Int,
action: (Int) -> Unit // [1]
) {
for (index in 0 until times) {
action(index) // [2]
}
}
fun my(){
println("xxx")
}
fun main() {
repeat(3) { my() }
}
解释一下为什么 main() 打印:
xxx
xxx
xxx
毕竟,重复函数似乎要求最后一个 lambda 参数采用 Int 作为输入,但我的函数 my 是在没有任何参数的情况下定义的......
my()
不作为 传输action
。action
就你而言是的{ my() }
。为了准确传达
my()
如何action
添加参数并传递对函数的引用。输出将是: