January 2017
Intermediate to advanced
420 pages
9h 25m
English
Recall from the previous chapter on functions that the receiver of a function is the instance that corresponds to the this keyword when inside the function body. In Kotlin, function parameters can be defined to accept a receiver when they are invoked. We do that using the following syntax:
fun foo(fn: String.() -> Boolean): Unit
Then, when we invoke the function fn in the foo function body, we are required to invoke it on an instance of string, as you can see if we complete the implementation of foo:
fun foo(fn: String.() -> Boolean): Unit {
"string".fn()
}
This feature also works with anonymous functions:
val substring = fun String.(substr: String): Boolean =
this.contains(substr)
"hello".substring("ello")
You might ...
Read now
Unlock full access