例如,在以下两个代码中:
security.authorization: enabled
和
File("./file1.txt").forEachLine { println(it) }
在此代码中File("somefile.txt").bufferedWriter().use { out ->
history.forEach {
out.write("${it.key}, ${it.value}\n")
}
}
是什么意思?
答案 0 :(得分:27)
it变量是lambda中的隐式参数。
另一个有用的约定是,如果函数文字只有一个参数,则可以省略其声明(以及 - >),其名称将为它强>:
答案 1 :(得分:5)
请参阅以下说明。
它:单个参数的隐含名称
lambda表达式只有一个参数非常常见。
如果编译器可以自己计算签名,则不允许 声明唯一参数并省略 - >。参数将是 隐含地在名称下声明:
ints.filter { it > 0 } // this literal is of type '(it: Int) -> Boolean'
https://kotlinlang.org/docs/reference/lambdas.html#it-implicit-name-of-a-single-parameter
答案 2 :(得分:2)
这是kotlin组织文档:it: implicit name of a single parameter
例如
ints.filter { value -> value > 0 }
您可以将其简化为:
ints.filter { it > 0 }
无法使用时
ints.filter { value > 0 }
答案 3 :(得分:1)
val list = listOf(1,2,3,4,5,6,7).filter { it > 2 }
for(i in list){
println(i)
}
在此示例中,列表大小为7。使用 it ,列表大小为5。仅用于循环检查> 2个数字
size = 5,输出为3,4,5,6,7