Categories: Funciones Estándar

Run

Share

En el penúltimo modismo por ver está run, que como vemos en la tabla volvemos a recibir el objeto como en apply pero a diferencia de este último, no devuelve el objeto, sino que devuelve el resultado de una función.

Además si te fijas bien, parece que run y with son iguales, pero en realidad no lo son ya que uno es una función de extensión y el otro puede serlo o no, veremos la diferencia cuando expliquemos with.

Tabla de modismos de Kotlin

Como vimos con let, run también devuelve el resultado de una función, por lo que uno de los usos puede ser el siguiente:

import java.lang.Math.PI

data class Circle(var radius: Int, var color: String) {
    fun area() = PI * radius * radius
}

fun main() {
//sampleStart
    val totalArea = run {
        val circle = Circle(2, "red")
        val circle2 = Circle(3, "blue")
        circle.area() + circle2.area()
    }

    println(totalArea)
//sampleEnd
}

También podrías haberlo hecho así:

import java.lang.Math.PI

data class Circle(var radius: Int, var color: String) {
    fun area() = PI * radius * radius
}

fun main() {
//sampleStart
    val circle = Circle(2, "red")
    val totalArea = circle.run {
        val circle2 = Circle(3, "blue")
        area() + circle2.area()
    }
    println(totalArea)
//sampleEnd
}

Aunque a mi personalmente me gusta más la primera opción.

Como mencionamos en la primera entrada, let, muchas veces podremos usar varios modismos para conseguir lo mismo, mi consejo es que los utilicéis basándoos en la semántica y en cual quedaría mejor de cara a alguien que vaya a leer vuestro código.


Enlaces de interés:

Recent Posts

  • Curso Interactivo

Variables

En esta lección aprenderás a declarar variables y los tipos básicos.

5 años ago
  • Curso Interactivo

Introducción al Curso Interactivo

La mejor forma de aprender algo en esta vida es a base de practicar. Espero…

5 años ago
  • Coroutines

Iniciar una Corrutina

La principal forma de iniciar una corrutina en Kotlin es con el coroutine builder launch…

5 años ago
  • Coroutines

Coroutines

Las coroutines en Kotlin vienen a tratar de solucionar todos los problemas y dificultades que…

5 años ago
  • Funciones Estándar

Resumen Elección de Modismo

Con este esquema te puedes guiar a la hora de elegir el modismo o función…

5 años ago
  • Funciones Estándar

With

El último que queda por ver es with qué en inglés significa "con". Por lo…

5 años ago