Se encargan de llevar a cabo la ejecución de un bloque de código sobre un objeto.
| Tipo | Referencia | Objetivo |
|---|---|---|
| let | it | Trabajar con objetos no nulos y transformar |
| run | this | Ejecutar operaciones complejas |
| with | this | Realizar operaciones en el mismo objeto |
| apply | this | Realizar operaciones en el mismo objeto |
| also | it | Operaciones adicionales sin modificar |
val nombre = "Kotlin"
val longitud = nombre.let {
println("El nombre es: $it") // El nombre es: Kotlin
it.length
}
println("Longitud: $longitud") // Longitud: 6
val resultado = "Kotlin".run {
println("Trabajando con $this")
length // Devuelve la longitud del String
}
println("Longitud: $resultado") // Longitud: 6
val persona = "Ana"
val mensaje = with(persona) {
println("Hola, $this")
length
}
println("Longitud del nombre: $mensaje")
// Longitud del nombre: 3
data class Persona(var nombre: String, var edad: Int)
val persona = Persona("Ana", 25).apply {
nombre = "Ana María"
edad = 26
}
println(persona) // Persona(nombre=Ana María, edad=26)
val nombre = "Kotlin".also {
println("El nombre es $it")
}
println("Nombre final: $nombre") // Nombre final: Kotlin