たとえば、次の2つのコードの場合:
File("./file1.txt").forEachLine { println(it) }
そして
File("somefile.txt").bufferedWriter().use { out ->
history.forEach {
out.write("${it.key}, ${it.value}\n")
}
}
このコードでit
はどういう意味ですか?
it 変数は、ラムダの暗黙的なパラメーターです。
他の便利な規則の1つは、関数リテラルに1つのパラメーターのみがある場合、その宣言は(->とともに)省略でき、その名前はbeit:
次の説明を参照してください。
it:単一のパラメータの暗黙的な名前
ラムダ式にはパラメーターが1つしかありません。
コンパイラが署名自体を把握できる場合、唯一のパラメータを宣言せずに->を省略できます。パラメーターは、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
val list = listOf(1,2,3,4,5,6,7).filter { it > 2 }
for(i in list){
println(i)
}
この例では、リストサイズは7です。itを使用すると、リストサイズは5です。
サイズ= 5、出力は3,4,5,6,7