使用 apply 初始化对象或实现方法链接

apply 的文档说明如下:

使用 this 值作为接收器调用指定的功能块并返回 this 值。

虽然 kdoc 不是那么有用,但 apply 确实是一个有用的功能。通俗地说,apply 建立了一个范围,其中 this 被绑定到你称之为 apply 的对象。这使你可以在需要在对象上调用多个方法时备用一些代码,稍后将返回该对象。例:

File(dir).apply { mkdirs() }

这和写这个是一样的:

fun makeDir(String path): File {
    val result = new File(path)
    result.mkdirs()
    return result
}