The it notation
It is very common in functional programming to keep your functions small and simple. The simpler the function, the easier it is to understand, and the more chances it has to be reused in other places. And the aim of reusing code is one of the basic Kotlin principles.
Notice that in the preceding example, we didn't specify the type of the d
variable. We could do this using the same colon notation we have used elsewhere:
dwarfs.forEach { d: String -> println(d) }
However, usually, we don't need to do this because the compiler can figure this out from the generic types that we use. After all, dwarfs
is of the List<String>
type, so d
is of the String
type as well.
The type of the argument is not the only part that we can omit when writing short lambdas like this one. If a lambda takes a single argument, we can use the implicit name for it, which in this case, is it
:
dwarfs.forEach { ...