任何 Kotlin 代码都可以自由调用所有标准函数。
一、with 函数
val result = with(obj) {
// 这里是obj的上下文
"value" // 最后一行是函数返回值
}
二、run函数
run 与 with 相似,但 run 不能直接调用,必须调用某个对象的 run 函数。
val result = obj.run {
// obj的上下文
"value" // 返回值
}
三、apply 函数
apply 与 run 类似,必须在对象上调用,apply 无法设置返回值,但会返回调用对象本身。
val result = obj.apply { // result == obj
// obj上下文
}
四、use 函数
它会保证 Lambda 中的代码全部执行完成后自动将外部流程关闭。
val writer = BufferedWrite(...)
writer.use {
...
} //自动关闭外部流
五、forEachLine 函数
将每行内容回调到 Lambda 中。
val reader = BufferedReader(...)
reader.forEachLine {
println(it) // it是回调的每一行内容
}