conclusión primero
la diferencia | valor de retorno | operación interna |
---|---|---|
dejar | la última línea | él |
aplicar | la propia persona que llama | este |
también | la propia persona que llama | él |
correr | la última línea | esto u omitir |
- Primero escriba una clase de Persona para demostración para facilitar la visualización de datos.
- En segundo lugar, escriba de 1 a 2 métodos de prueba para cada API y
vea el registro impreso (el que está en la nota)
class Person(var name: String, var age: Int) {
override fun toString(): String {
return "[姓名:$name ~ 年龄:$age]"
}
}
dejar
- Es adecuado para el procesamiento prolongado de algunos datos que necesitan sondeo,
- El valor devuelto es la última fila.
- Úselo internamente en lugar de
//原始数据[姓名:张三 ~ 年龄:20]
//修改后数据[姓名:张三 ~ 年龄:30]
//二次let数据kotlin.Unit
fun test1(): Unit {
val person = Person("张三", 20)
val result = person.let {
println("原始数据${it.toString()}")
it.age = 30
println("修改后数据${it.toString()}")
it.age = 40
}.let {
println("二次let数据${it.toString()}")
}
return result
}
//原始数据[姓名:张三 ~ 年龄:20]
//修改后数据[姓名:张三 ~ 年龄:30]
//二次let数据[姓名:张三 ~ 年龄:40]
fun test01(): Person {
val person = Person("张三", 20)
val result = person.let {
println("原始数据${it.toString()}")
it.age = 30
println("修改后数据${it.toString()}")
it.age = 40
it
}.let {
println("二次let数据${it.toString()}")
it
}
return result
}
aplicar
- El valor de retorno es la persona que llama en sí
- Usa esto internamente en su lugar
//原始数据[姓名:张三 ~ 年龄:20]
//修改后数据[姓名:张三 ~ 年龄:30]
//二次apply数据[姓名:张三 ~ 年龄:40]
fun test2(): Person {
val person = Person("张三", 20)
val result = person.apply {
println("原始数据${this.toString()}")
this.age = 30
println("修改后数据${this.toString()}")
this.age = 40
}.apply {
println("二次apply数据${this.toString()}")
}
return result
}
también
- El valor de retorno es la persona que llama en sí
- Úselo internamente en lugar de
//原始数据[姓名:张三 ~ 年龄:20]
//修改后数据[姓名:张三 ~ 年龄:30]
//二次also数据[姓名:张三 ~ 年龄:40]
fun test3(): Person {
val person = Person("张三", 20)
val result = person.also {
println("原始数据${it.toString()}")
it.age = 30
println("修改后数据${it.toString()}")
it.age = 40
}.also {
println("二次also数据${it.toString()}")
}
return result
}
correr
- El valor de retorno es la última línea.
- Usa esto internamente en su lugar
- Puede asignar directamente a la persona que llama sin el nombre de la variable
//原始数据[姓名:张三 ~ 年龄:20]
//修改后数据[姓名:张三 ~ 年龄:30]
//二次also数据kotlin.Unit
fun test4(): Unit {
val person = Person("张三", 20)
val result = person.run {
println("原始数据${toString()}")
age = 30
println("修改后数据${toString()}")
age = 40
}.run {
println("二次also数据${toString()}")
}
return result
}
//原始数据[姓名:张三 ~ 年龄:20]
//修改后数据[姓名:张三 ~ 年龄:30]
//二次also数据[姓名:张三 ~ 年龄:40]
fun test04(): Person {
val person = Person("张三", 20)
val result = person.run {
println("原始数据${toString()}")
age = 30
println("修改后数据${toString()}")
age = 40
this
}.run {
println("二次also数据${toString()}")
this
}
return result
}
tomar si
takeIf Si se cumple la condición del juicio, se ejecutará
//年龄大于19岁:[姓名:张三 ~ 年龄:20]
//takeIf最后一行返回:[姓名:张三 ~ 年龄:40]
fun test5() {
val person = Person("张三", 20)
person.takeIf { it.age > 19 }.let {
println("年龄大于19岁:${it.toString()}")
it!!.age = 40
it
}.let {
println("takeIf最后一行返回:${it.toString()}")
}
tomar a menos que
takeUnless Ejecutar si la condición del juicio no es verdadera
//年龄 不是 大于21岁:[姓名:张三 ~ 年龄:20]
//takeUnless最后一行返回:[姓名:张三 ~ 年龄:40]
fun test05() {
val person = Person("张三", 20)
person.takeUnless { it.age > 21 }.let {
println("年龄 不是 大于21岁:${it.toString()}")
it!!.age = 40
it
}.let {
println("takeUnless最后一行返回:${it.toString()}")
}
}