CodeEggDailyInterview
CodeEggDailyInterview copied to clipboard
简述 kotlin 中 run, apply, let, with,also 的用法和区别
-
run函数返回值为函数块最后一行,或者指定 return 表达式,如果调用某对象的run函数,在函数块内可以通过 this 指代该对象。返回值为函数块的最后一行或指定 return 表达式。例如
val a = "run".run {
println(this)
return@run 3
}
println(a)
结果为
run
3
-
apply调用某对象的 apply 函数,在函数块内可以通过 this 指代该对象。返回值为该对象自己。例如
val a = "apply".apply {
println(this)
}
println(a)
结果为
apply
apply
-
let调用某对象的 let 函数,则该对象为函数的参数。在函数块内可以通过 it 指代该对象。返回值为函数块的最后一行或指定 return 表达式,例如
val a = "let".let {
println(it)
4
}
println(a)
结果为
let
4
-
also调用某对象的 also 函数,则该对象为函数的参数。在函数块内可以通过 it 指代该对象。返回值为该对象自己。例如
val a = "also".also {
println(it)
}
println(a)
结果为
also
also
-
with函数和前面的几个函数使用方式略有不同,因为它不是以扩展的形式存在的。它是将某对象作为函数的参数,在函数块内可以通过 this 指代该对象。返回值为函数块的最后一行或指定 return 表达式。例如
val a = with("with") {
println(this)
5
}
println(a)
结果为
with
5