Categories: Funciones

Funciones de Extensión

Share

Como se ha dicho antes, en Kotlin todo es un objeto y por ende esta característica, las funciones de extensión, es aplicable tanto a los objetos que te da el propio lenguaje, los creados por otra librería de terceros o los que tu mismo crees.

Es una de las funciones que más me gustan de Kotlin, y es añadir nuestras propias funciones a cualquier objeto que usemos en nuestra aplicación. Con un ejemplo será todo más claro:

Supongamos que generalmente en nuestra app nos interesa que un String tenga una funcionalidad adicional, como por ejemplo mostrarse por pantalla pero con una tag que facilite su lectura. Esto en Android es bastante habitual cuando usas el logcat. En Kotlin podríamos hacer lo siguiente:

//sampleStart
fun String.log() {
    val tag = "MyCustomTag"
    println("$tag: $this")
}

fun main() {
    val text = "Hello, World"
    text.log() // Usage
}
//sampleEnd

Ahora cada vez que queramos hacer mostrar algo solo tendremos que usar .log() directamente en nuestra cadena de texto en vez de tener que escribir de forma repetitiva la plantilla de texto:

val text = "Hello, World"
println("$tag: $text")

Y como habréis comprobado, hemos añadido esa nueva función a un objeto propio del lenguaje, String, por lo que podemos añadir funciones de extensión a cualquier cosa. En Android el clásico ejemplo es el de combinarlo con Picasso o Glide para añadir la función al ImageView de mostrar imágenes de Internet evitando todo el boilerplate habitual:

fun ImageView.loadUrl(url: String) {
    Picasso.with(context).load(url).into(this)
}

imageView.loadUrl(url) // Bye bye boilerplate!

Estoy tratando de hacer un recopilatorio de funciones de extensión, podéis aportar vuestro granito siempre que queráis dejando un comentario abajo o en el repositorio de GitHub.

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