Funciones de Extensión

Explicación del concepto y uso de las funciones de extensión.

CONCEPTO

Las funciones de extensión nos permiten añadir funciones a cualquier clase aunque no tengamos acceso a su código fuente y sin tener que crear una clase que la extienda.

Se utilizan a menudo para extender las funcionalidades de los diferentes tipos de datos (que como ya sabemos, son clases en Kotlin) o para extender las funcionalidades que el framework de Android implementa.

IMPLEMENTACIÓN

Para implementar una función de extensión se debe seguir la siguiente sintaxis:

fun Clase.funcion(/*...*/) {/*...*/}

Un ejemplo práctico de su uso es, por ejemplo, una función de extensión de la clase IntArray para que sume todos los elementos del Array:

fun IntArray.suma(): Int {
    var suma = 0
    for (i in this) suma += i
    return suma
}
val array = IntArray(5) {5}
println(array.contentToString()) // [5, 5, 5, 5, 5]
println(array.suma())            // 25

Last updated