Kotlin - forEach

时间:2017-11-02 11:23:14

标签: kotlin

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

fun main(args: Array<String>) {

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

        k.forEach(::println)
}

这样运行正常并给出了列表,但有人可以帮助解释k.forEach(:: println)如何真正起作用吗?

2 个答案:

答案 0 :(得分:6)

forEach获取k中的每个元素并执行指定要执行的。在您的示例中,&#34; 内容&#34;参数是::println,它引用stdlib函数println(message: Any)::为此函数引入了function reference。每个元素都作为参数message传递给println,因此它将被打印在控制台上。

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

k.forEach{
   println(it)
}

答案 1 :(得分:-2)

inline fun Iterable.forEach(action: (T) -> Unit)

  

public inline fun Iterable.forEach(action:(T) - &gt; Unit):Unit {       for(this in this)action(element)}