本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
apply
apply函数可以看作是一个配置函数,可以传入一个接收者,然后调用一系列函数来配置以便使用,如果提供lambda给apply函数执行,将返回配置好的接收者
apply能让每个配置函数都作用于接收者
val file1 = File("C://Android").apply {
setExecutable(false)
setReadable(true)
setWritable(true)
}
let
能使某个变量作用于其Lambda表达式里,让it关键字能引用它。
fun main() {
val result = listOf(3,2,1).first().let {
it*it
}
println(result)
}
fun formatName(name:String?): String {
return name?.let { "Whelcome, $it" } ?: "name?"
}
run
-
和apply差不多,但返回的是lambda的执行结果,而apply返回的是接收者
-
可以执行函数引用
-
多个函数引用可以链式调用
fun main() {
var file = File(“D:test.txt”)
val result = file.run {
readText().contains(“hava”)
}
println(result)
//执行