Función de extensión de Kotlin

Función de extensión de Kotlin
A veces, trabajamos con clases en diferentes lenguajes de programación y utilizamos el concepto de herencia para usar las funciones de esas clases. Además, incluso puede usar este concepto para tener una funcionalidad adicional que sea diferente de la clase base. Sin embargo, el lenguaje de programación de Kotlin nos proporciona una forma diferente de hacerlo y en este artículo, intentaremos explorar ese método.

¿Cuál es el propósito de la función de extensión de Kotlin??

La función de extensión de Kotlin se define como una función derivada de una clase que no se implementa dentro de esa clase, sino que se implementa fuera de esa clase. De esta manera, puede extender fácilmente la funcionalidad de una clase creando una función fuera del alcance de esta clase con la funcionalidad deseada haciendo uso del nombre de la clase. Para comprender el funcionamiento de la función de extensión de Kotlin, tendrá que pasar por las secciones de este artículo que se discute a continuación.

Usando la función de extensión Kotlin

Para aprender cómo se usa la función de extensión de Kotlin en Ubuntu 20.04, puede recibir ayuda de los siguientes tres ejemplos:

Ejemplo # 1: Uso de la función de extensión Kotlin con la clase de cadena

En este ejemplo, utilizaremos la función de extensión con la clase de cadena incorporada del lenguaje de programación de Kotlin. Queremos crear una función que sea capaz de imprimir una cadena mientras trunca su primer y último elemento. Esta función no se implementa en la clase de cadena de forma predeterminada. Por lo tanto, intentaremos implementarlo haciendo uso de la función de extensión mientras usa el script Kotlin que se muestra a continuación:

En este ejemplo, primero hemos definido el nombre de nuestra función comenzando con el nombre de la Clase I.mi., Cadena. Hemos nombrado nuestra función como "removeInitialAndendChar". El tipo de retorno de esta función es una cadena. Luego, hemos definido la funcionalidad de esta función con la declaración "esto.subcadena (1, esto.longitud-1) ". Aquí, la función de subcadena utilizada es una función de clase de cadena incorporada. Ahora, dentro de nuestra función "main ()", hemos declarado una cadena con el nombre de "periodista" que queremos truncar desde el principio y el final. Luego, hemos creado una variable de salida a la que hemos asignado el resultado de nuestra función "RemoTinitialAndendChar ()" que hemos llamado con nuestra cadena declarada. Finalmente, hemos utilizado una instrucción "println" para imprimir la salida de esta función en el terminal.

La compilación de este script Kotlin tendrá lugar con la ejecución del siguiente comando:

$ Kotlinc Extensión.kt

Luego, la ejecución de este script tendrá lugar ejecutando el comando que se muestra a continuación:

$ Kotlin Extensionkt

Nuestra cadena después de eliminar su primer y último carácter se muestra en la siguiente imagen:

Ejemplo # 2: Uso de la función de extensión Kotlin con la clase de lista mutable

Este es otro ejemplo de usar la función de extensión del lenguaje de programación de Kotlin. Ahora intentaremos usar esta función con la clase de lista mutable del lenguaje de programación de Kotlin. El script Kotlin que se muestra a continuación muestra esto:

En este script de ejemplo, queríamos crear una función que sea capaz de intercambiar dos elementos dados de una lista. Hemos extendido esta función desde la clase de lista mutable del lenguaje de programación de Kotlin. La función definida acepta dos enteros i.mi., índice1 e índice2. Además, esta función es capaz de devolver la lista de enteros después de intercambiar sus elementos. Dentro de esta función extendida, hemos creado un valor llamado "temp" y hemos asignado el primer índice pasado a esta función.

Luego, hemos asignado el segundo índice al primer índice. Después de eso, hemos asignado el valor de la variable "TEMP" al segundo índice. Finalmente, hemos devuelto esta lista de enteros. Dentro de nuestra función "main ()", hemos creado una lista mutable que le han asignado seis elementos enteros. Después de eso, hemos impreso los elementos de esta lista antes de intercambiar. Luego, queríamos intercambiar el segundo elemento de esta lista con el sexto elemento debido a que hemos pasado los índices "1" y "5" a la función de intercambio y hemos asignado su resultado al valor "resultado". Finalmente, hemos impreso esta lista después de intercambiar sus elementos en la terminal.

La salida de este script Kotlin se muestra en la siguiente imagen que muestra los elementos de nuestra lista tanto antes como después de intercambiar.

Ejemplo # 3: Uso de la función de extensión Kotlin con una clase definida por el usuario

En este ejemplo, utilizaremos la función de extensión con una clase definida por el usuario. Para comprender eso, debe echar un vistazo al script Kotlin que se muestra en la imagen a continuación:

En este guión, primero hemos creado una clase llamada "Persona". En esta clase, tenemos una función llamada "LifeStatus" que acepta un argumento de cadena. Dentro de esta función, solo queremos notificar si una persona está viva o fallecida. Ahora, queremos otra función que sea capaz de imprimir la edad de una persona. Como puede ver, no hemos implementado esta función dentro de la clase "persona"; Por lo tanto, lo extenderemos de la clase de "persona".

Hemos creado una función extendida llamada "Age" que toma un argumento entero "Edad". Dentro de esta función, simplemente hemos impreso la edad de la persona. Después de eso, hemos generado una instancia de la clase de "persona" llamada "P1". Entonces, hemos llamado a nuestras dos funciones I.mi., "LifeStatus ()" y "Age ()" uno por uno usando este objeto.

La salida de este programa Kotlin se muestra en la siguiente imagen que implica que la función de extensión de Kotlin funciona perfectamente bien con las clases definidas por el usuario también.

Conclusión

En este artículo, queríamos presentarle el concepto de la función de extensión en el lenguaje de programación de Kotlin en Ubuntu 20.04. Después de explicar el propósito básico de esta función, compartimos con usted algunos ejemplos en los que hemos implementado esta función con clases incorporadas y definidas por el usuario en Kotlin. Este artículo lo ayudará mucho cuando necesite extender la funcionalidad de cualquier clase deseada en Kotlin.