The documentation of apply
says the following:
calls the specified function block with
this
value as its receiver and returnsthis
value.
While the kdoc is not so helpful apply
is indeed an useful function. In layman's terms apply
establishes a scope in which this
is bound to the object you called apply
on. This enables you to spare some code when you need to call multiple methods on an object which you will then return later. Example:
File(dir).apply { mkdirs() }
This is the same as writing this:
fun makeDir(String path): File {
val result = new File(path)
result.mkdirs()
return result
}