Что такое "это" в лямбда-тесте Котлин?

Например, в следующих двух следующих кодах:

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

а также

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

В этом коде, что it значит?

Ответы

Ответ 1

эта переменная является неявным параметром в лямбда.

Одна другой полезной конвенции является то, что если функция литерал имеет только один параметр, его выражение может быть опущено (вместе с ->), и его имя будет его:

Ответ 2

Пожалуйста, обратитесь к нижеследующему описанию.

it: неявное имя одного параметра

Очень распространено, что выражение лямбда имеет только один параметр.

Если компилятор сам может определить подпись, разрешено не объявлять единственный параметр и опускать ->. Параметр будет неявно объявлен под именем it:

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

Ответ 3

val list = listOf(1,2,3,4,5,6,7).filter { it > 2 }
for(i in list){
    println(i)
}

В этом примере размер списка равен 7. Используя его, размер списка равен 5. Для проверки только цикла> 2 числа

размер = 5 и выход 3,4,5,6,7