Scala tratti

Scala tratti
L'uso delle interfacce è una funzionalità molto importante della programmazione orientata agli oggetti. Scala è un linguaggio così versatile che consente di ottenere la stessa funzionalità usando i tratti. Pertanto, questa guida sarà dedicata all'uso dei tratti nel linguaggio di programmazione Scala in Ubuntu 20.04.

Qual è lo scopo dei tratti nel linguaggio di programmazione Scala?

Abbiamo già detto che i tratti in Scala hanno lo stesso scopo delle interfacce in Java. Significa che ti è consentito creare un'interfaccia generica utilizzando i tratti Scala e le tue classi potranno estendere questo tratto implementando i metodi desiderati. Inoltre, una cosa interessante sui tratti Scala è che sei libero di utilizzare sia gli astratti che i metodi non astratti all'interno di un tratto. Tuttavia, se si utilizza un metodo non di astratto all'interno di un tratto, non è necessario fornire la sua implementazione all'interno della classe che estenderà questo tratto.

Usando i tratti in Scala:

Per fare buon uso dei tratti in Scala in Ubuntu 20.04, dovrai leggere i seguenti tre esempi:

Esempio n. 1: usando i tratti con solo metodi astratti in Scala:

Nel linguaggio di programmazione Scala, possiamo avere sia i metodi astratti che non astratti all'interno di un tratto. Tuttavia, in questo esempio, avremo solo metodi astratti all'interno del nostro tratto definito e vedremo come funzionano i tratti nel linguaggio di programmazione Scala. Devi dare un'occhiata al codice mostrato di seguito per capire questo:

Abbiamo definito per la prima volta un tratto chiamato "categoria" in questo codice Scala. All'interno di questo tratto, abbiamo dichiarato due metodi astratti con l'aiuto della parola chiave "def" con i nomi "dipendente" e "dipendente_age". Pertanto, poiché questi sono metodi astratti, li implementeremo all'interno della classe che estenderà questo tratto. Quindi, abbiamo progettato una classe denominata "dipendente" e abbiamo utilizzato la parola chiave "estende" per estendere il tratto creato sopra da questa classe. Successivamente, abbiamo implementato per la prima volta i metodi astratti del nostro tratto all'interno di questa classe. Quindi, abbiamo creato un altro metodo chiamato "Employee_Name" all'interno di questa classe.

Infine, abbiamo usato la parola chiave "oggetto" per la creazione della nostra classe di driver denominata "tratto". All'interno di questa classe, abbiamo la nostra funzione "principale ()" in cui abbiamo creato una nuova istanza della nostra classe "dipendente" denominata "EMP". Quindi, abbiamo successivamente chiamato tutte le funzioni di questa classe (quelle definite all'interno della classe e anche quelle estese dal tratto) usando l'istanza di questa classe.

Questo script Scala può essere compilato usando il comando indicato di seguito:

$ Scalac tratto.Scala

Dopo una raccolta riuscita, questo script può essere eseguito con il seguente comando:

$ Scala tratto

Puoi testimoniare dall'output mostrato di seguito che abbiamo implementato con successo una classe che si estende da un tratto Scala e la sua uscita si è rivelata esattamente come previsto.

Esempio n. 2: usando i tratti con i metodi astratti e non astratti in Scala:

In questo esempio, useremo sia i metodi astratti che non astratti in Scala. Significa che implementeremo alcuni metodi all'interno del tratto e implementeremo gli altri all'interno della classe che estenderà questo tratto. In questo modo, vogliamo capire quale impatto lascia sulla nostra produzione. Pertanto, useremo lo stesso esempio che abbiamo implementato sopra come base con lievi modifiche. L'esatto programma Scala è il seguente:

La differenza tra i nostri primi e secondi esempi è che in questo abbiamo implementato il metodo "Employee_age ()" all'interno del nostro tratto. Quindi, è diventato un metodo non astratto. D'altra parte, abbiamo implementato il metodo "dipendente ()" all'interno della nostra classe che ha esteso il nostro tratto. In altre parole, abbiamo definito solo la firma di questa funzione all'interno del nostro tratto che l'ha resa una funzione astratta. Il resto del codice è lo stesso del nostro primo esempio.

Ora, per vedere se questa modifica ha lasciato o meno un impatto sul nostro output, abbiamo compilato ed eseguito questo script. Puoi dare un'occhiata all'uscita mostrata di seguito e confermare che questo output è lo stesso del nostro primo esempio. Implica che non importa se si utilizzano i metodi astratti o non astratti all'interno di Scala tratti, l'output rimarrà lo stesso.

Esempio n. 3: usando più tratti in Scala:

Una classe Scala può anche estendere più tratti alla volta. Il seguente esempio lo raffigura:

Ancora una volta, abbiamo usato lo stesso esempio di una base. L'unica differenza tra il nostro secondo e il terzo esempi è che in questo, abbiamo creato un altro tratto chiamato "qualifica" e abbiamo implementato un metodo non contratto all'interno di questo tratto. Quindi, mentre estendiamo la nostra classe da questi tratti, abbiamo usato la parola chiave "estende" con il primo tratto e abbiamo usato la parola chiave "con" tra i nomi dei due tratti. Allo stesso modo, se hai più di due tratti da cui estendere la tua classe, separerai i nomi di tutti i tratti usando la parola chiave "con". Nella nostra funzione "Main ()", abbiamo anche chiamato la funzione del nuovo tratto che abbiamo creato in questo esempio.

L'immagine seguente presenta l'output di questo script Scala, che conferma che una classe può estendere contemporaneamente più tratti.

Conclusione:

Con l'aiuto di questo tutorial, volevamo darti una breve panoramica del funzionamento dei tratti in Scala in Ubuntu 20.04. Per questo, abbiamo condiviso per la prima volta lo scopo principale di usare i tratti in Scala evidenziando la loro stretta somiglianza con le interfacce in Java. Quindi, abbiamo condiviso il modo in cui questi tratti possono essere utilizzati con i metodi astratti e non astratti. Infine, abbiamo discusso di tre esempi che utilizzavano efficacemente i tratti Scala. Abbiamo cercato di mantenere questi esempi estremamente facili e semplici in modo da poter afferrare rapidamente l'idea di usare i tratti Scala.