Par exemple dans ces deux codes suivants:
File("./file1.txt").forEachLine { println(it) }
et
File("somefile.txt").bufferedWriter().use { out ->
history.forEach {
out.write("${it.key}, ${it.value}\n")
}
}
Dans ce code, que signifie it
?
it variable est un paramètre implicite dans lambda.
Une autre convention utile est que si un littéral de fonction n'a que un paramètre, sa déclaration peut être omise (avec le ->) et son nom sera it:
Veuillez vous reporter à la description suivante.
it: nom implicite d'un seul paramètre
Il est très courant qu'une expression lambda n'ait qu'un seul paramètre.
Si le compilateur peut comprendre la signature elle-même, elle n'est pas autorisée pour déclarer le seul paramètre et omettre ->. Le paramètre sera implicitement déclaré sous le nom 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)
}
Dans cet exemple, la taille de la liste est 7. En utilisant it , la taille de la liste est 5. Pour la vérification en boucle uniquement> 2 chiffres
taille = 5 et la sortie est 3,4,5,6,7