Kotlin-forEach

标签 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) 是如何工作的吗?

最佳答案

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

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

k.forEach{
   println(it)
}

关于Kotlin-forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47074091/

相关文章:

android - Kotlin 不调用 super

java - 列表<? extends Something > 生成而不是 List<Something>

android - 在 Flutter 3.0 中,二维码扫描仪出现错误

java - 为什么 Epoxy 不生成模型类?

android - 使用 RxJava 和 EventBus 将事件发送回 Activity/fragment

android - null 不能转换为非 null 类型 kotlin.collections.List - kotlin

variables - 有没有一种更简洁的方法可以稍后在代码中设置顶级变量而不使其成为 lateinit var?

java - Android Studio 和我的设备中的分辨率相同但外观不同

java - 安卓工作室 3.0 "JUnit version 3.8 or later expected"

exception - Kotlin 删除检查异常背后的想法是什么?