January 2017
Intermediate to advanced
420 pages
9h 25m
English
So far in this chapter, we have already seen how to pass functions as parameters. The ways we have done this so far are either by creating a function literal, or by using a function that returns another function.
But what if we have a top-level function and we want to use that? We can wrap the function in another function, of course:
fun isEven(k: Int): Boolean = k % 2 == 0
val ints = listOf(1, 2, 3, 4, 5)
ints.filter { isEven(it) }
The alternative is to use what is called a function reference. Using the same definition for isEven, we can write it as follows:
val ints = listOf(1, 2, 3, 4, 5)
ints.filter(::isEven)
Note that the :: syntax is used before the function name.
Read now
Unlock full access