我正在研究 kotlin 中的作用域函数。我找到了很多使用这些功能的文章和示例。但没有任何东西可以解释在哪些场景下使用哪些功能。另外它和这个关键字有什么区别,有人可以解释一下区别吗?这是一个使用作用域函数执行类似任务的简单示例。 如果可以使用不同的函数完成类似的任务,那么为什么要使用不同作用域的函数?
fun main() {
val person = Person()
person.let {
it.name = "let HelloWorld"
println(it.name)
println("let $it")
}
println("let.. $person")
with(person) {
name = "With HelloWorld"
println(this.name)
println(this)
}
println(person)
person.run {
name = "Run HelloWorld"
println(this.name)
println(this)
}
println(person)
person.apply {
name = "apply HelloWorld"
println(this.name)
println(this)
}
println(person)
person.also {
it.name = "Also HelloWorld"
println(it.name)
println(it)
}
println(person)
}
data class Person(var name:String="", var age:Int = 0)