例如,用另一个数组中的数据填充崩溃数组:
if (datosAccidente.desperfectos.isNotEmpty()) {
rDesperfectos = datosAccidente.desperfectos.map { Desperfecto(it) }
}
或者从文件中读取行时:
File("./miFichero.txt").forEachLine { println(it) }
它是it
什么,它在这些例子中代表什么?
阅读文档,提到它it
是单个参数的隐式名称,但是为什么它不适用于以下情况:
fun test(datos: String) {
var aux: String = it
}
在您链接的文档中,它说:
lambda 表达式或匿名函数是“文字函数”
并在
it
解释的定义中:另一个有用的约定是,如果文字函数只有一个参数,则可以省略其声明(连同 -> 一起),其名称将为
it
.因此
it
,约定 lambda 函数的声明更短。这不适用于以经典方式声明的函数
因为语法明确要求变量名及其类型:测试函数可以以一般方式使用,因此如果此时未定义类型,编译器无法推断类型,而 lambda 函数是在它们的时刻声明的将被使用(它们具有非常明确的上下文),因此不必显式定义类型。