Kotlin 科特林-弗雷赫

Kotlin 科特林-弗雷赫,kotlin,Kotlin,我是科特林的初学者。 如何解释以下代码段 fun main(args: Array<String>) { var k = listOf<Double>(1.2,77.8,6.3,988.88,0.1) k.forEach(::println) } fun main(args:Array){ var k=listOf(1.2,77.8,6.3988.88,0.1) k、 forEach(::println) } 这运行得很好,并给出了列表,但

我是科特林的初学者。 如何解释以下代码段

fun main(args: Array<String>) {

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

        k.forEach(::println)
}
fun main(args:Array){
var k=listOf(1.2,77.8,6.3988.88,0.1)
k、 forEach(::println)
}
这运行得很好,并给出了列表,但是有人可以帮助解释k.forEach(::println)是如何工作的吗?

获取
k
中的每个元素,并执行您指定的操作。在您的示例中,“what”参数是
::println
,它引用stdlib函数。
为该函数引入了一个。每个元素都作为参数
message
传递给
println
,因此它被打印在控制台上

更清楚地说,您可以传递lambda而不是函数引用,如下所示:

k.forEach{
   println(it)
}
获取
k
中的每个元素并执行指定的操作。在您的示例中,“what”参数是
::println
,它引用stdlib函数。
为该函数引入了一个。每个元素都作为参数
message
传递给
println
,因此它被打印在控制台上

更清楚地说,您可以传递lambda而不是函数引用,如下所示:

k.forEach{
   println(it)
}

public-inline-funiterable.forEach(动作:(T)->Unit):Unit{ 对于(此中的元素)操作(元素)}

public-inline-funiterable.forEach(动作:(T)->Unit):Unit{ 对于(此中的元素)操作(元素)}