Kotlin - forEach

Paa*_*mar 1 kotlin

我是Kotlin的初学者.你如何解释以下代码片段?

fun main(args: Array<String>) {

    var k = listOf<Double>(1.2,77.8,6.3,988.88,0.1)

        k.forEach(::println)
}
Run Code Online (Sandbox Code Playgroud)

运行正常,并提供列表,但有人可以帮助解释k.forEach(:: println)如何真正起作用?

s1m*_*nw1 6

forEach发生在每一个元素k,并没有什么可以指定它做的事.在您的示例中," what "参数是::println指stdlib函数println(message: Any).在::引入了函数引用这个功能.每个元素都作为参数message传递println,因此它将被打印在控制台上.

为了更清楚,你可以传递一个lambda而不是像这样的函数引用:

k.forEach{
   println(it)
}
Run Code Online (Sandbox Code Playgroud)