Kotlin lambda body 中的“it”是什么?

2022-09-01 03:45:54

例如,在以下两个代码中:

File("./file1.txt").forEachLine { println(it) }

File("somefile.txt").bufferedWriter().use { out ->
    history.forEach {
        out.write("${it.key}, ${it.value}\n")
    }
}

在此代码中是什么意思?it


答案 1

变量是 lambda 中的隐式参数。

另一个有用的约定是,如果函数文本只有一个参数,则可以省略其声明(以及 ->),并且其名称将是


答案 2

下面是 kotlin 组织文档:it:单个参数的隐式名称

例如

ints.filter { value -> value > 0 }

你可以简化为:

ints.filter { it > 0 }

而您不能使用

ints.filter { value > 0 }