Rasgos de scala

Rasgos de scala
El uso de interfaces es una funcionalidad muy importante de la programación orientada a objetos. Scala es un lenguaje tan versátil que le permite lograr la misma funcionalidad utilizando rasgos. Por lo tanto, esta guía se dedicará al uso de rasgos en el lenguaje de programación de Scala en Ubuntu 20.04.

¿Cuál es el propósito de los rasgos en el lenguaje de programación de Scala??

Ya hemos mencionado que los rasgos en Scala tienen el mismo propósito que las interfaces en Java. Significa que puede crear una interfaz genérica utilizando rasgos Scala, y sus clases podrán extender este rasgo implementando los métodos deseados. Además, algo interesante sobre los rasgos de Scala es que es libre de usar los métodos abstractos y no abstractos dentro de un rasgo. Sin embargo, si utiliza un método no abstracto dentro de un rasgo, no necesitará proporcionar su implementación dentro de la clase que extienda este rasgo.

Usando los rasgos en Scala:

Para hacer un buen uso de los rasgos en Scala en Ubuntu 20.04, tendrá que leer los siguientes tres ejemplos:

Ejemplo # 1: Uso de rasgos con solo métodos abstractos en Scala:

En el lenguaje de programación de Scala, podemos tener los métodos abstractos y no abstractos dentro de un rasgo. Sin embargo, en este ejemplo, solo tendremos métodos abstractos dentro de nuestro rasgo definido y veremos cómo funcionan los rasgos en el lenguaje de programación de Scala. Debe echar un vistazo al código que se muestra a continuación para comprender esto:

Primero hemos definido un rasgo llamado "categoría" en este código Scala. Dentro de este rasgo, hemos declarado dos métodos abstractos con la ayuda de la palabra clave "def" con los nombres "empleado" y "empleado_age". Por lo tanto, dado que estos son métodos abstractos, los implementaremos dentro de la clase que extenderá este rasgo. Luego, hemos diseñado una clase llamada "Empleado" y hemos utilizado la palabra clave "extiende" para extender el rasgo creado anteriormente a partir de esta clase. Después de eso, primero hemos implementado los métodos abstractos de nuestro rasgo dentro de esta clase. Luego, hemos creado otro método llamado "Empleado_Name" dentro de esta clase.

Finalmente, hemos utilizado la palabra clave "objeto" para crear nuestra clase de controlador llamada "rasgo". Dentro de esta clase, tenemos nuestra función "main ()" en la que hemos creado una nueva instancia de nuestra clase de "empleado" llamada "EMP". Luego, hemos llamado sucesivamente todas las funciones de esta clase (las definidas dentro de la clase y también las extendidas desde el rasgo) utilizando la instancia de esta clase.

Este script de Scala se puede compilar utilizando el comando que se proporciona a continuación:

Rasgo de $ Scalac.Escala

Después de una compilación exitosa, este script se puede ejecutar con el siguiente comando:

$ scala rasgo

Puede presenciar desde la salida que se muestra a continuación que hemos implementado con éxito una clase que se extiende desde un rasgo Scala y su salida resultó ser exactamente como se esperaba.

Ejemplo # 2: Uso de rasgos con los métodos abstractos y no abstractos en Scala:

En este ejemplo, utilizaremos los métodos abstractos y no abstractos en Scala. Significa que implementaremos algunos métodos dentro del rasgo e implementaremos los otros dentro de la clase que extenderán este rasgo. De esta manera, queremos averiguar qué impacto deja en nuestra salida. Por lo tanto, utilizaremos el mismo ejemplo que hemos implementado anteriormente como línea de base con ligeras modificaciones. El programa exacto Scala es el siguiente:

La diferencia entre nuestros primeros y segundos ejemplos es que en este caso, hemos implementado el método "Employee_age ()" dentro de nuestro rasgo. Por lo tanto, se convirtió en un método no abstracto. Por otro lado, hemos implementado el método "Empleado ()" dentro de nuestra clase que extendió nuestro rasgo. En otras palabras, solo hemos definido la firma de esta función dentro de nuestro rasgo que lo convirtió en una función abstracta. El resto del código es el mismo que nuestro primer ejemplo.

Ahora, para ver si esta modificación dejó algún impacto en nuestra salida o no, compilamos y ejecutamos este script. Puede echar un vistazo a la salida que se muestra a continuación y confirmar que esta salida es la misma que nuestro primer ejemplo. Implica que no importa si usa los métodos abstractos o no abstractos dentro de los rasgos Scala, su salida seguirá siendo la misma.

Ejemplo # 3: Uso de múltiples rasgos en Scala:

Una clase de Scala también puede extender múltiples rasgos a la vez. El siguiente ejemplo muestra esto:

Nuevamente, hemos usado el mismo ejemplo que una línea de base. La única diferencia entre nuestros segundos y terceros ejemplos es que en este caso, hemos creado otro rasgo llamado "calificación" y hemos implementado un método no abstracto dentro de este rasgo. Luego, mientras extiende nuestra clase desde estos rasgos, hemos utilizado la palabra clave "extiende" con el primer rasgo y hemos usado la palabra clave "con" entre los nombres de los dos rasgos. Del mismo modo, si tiene más de dos rasgos para extender su clase, separará los nombres de todos los rasgos utilizando la palabra clave "con". En nuestra función "main ()", también hemos llamado la función del nuevo rasgo que hemos creado en este ejemplo.

La imagen a continuación presenta la salida de este script Scala, que confirma que una clase puede extender múltiples rasgos simultáneamente.

Conclusión:

Con la ayuda de este tutorial, queríamos darle una breve descripción del funcionamiento de los rasgos en Scala en Ubuntu 20.04. Para eso, primero compartimos con usted el objetivo principal de usar los rasgos en Scala al resaltar su estrecha semejanza con las interfaces en Java. Luego, compartimos cómo estos rasgos se pueden usar con los métodos abstractos y no abstractos. Finalmente, discutimos tres ejemplos que usaron rasgos Scala de manera efectiva. Hemos tratado de mantener estos ejemplos extremadamente fáciles y simples para que pueda tomar rápidamente la noción de usar rasgos Scala.