Traços de Scala

Traços de Scala
Usar interfaces é uma funcionalidade muito importante da programação orientada a objetos. Scala é uma linguagem tão versátil que permite que você alcance a mesma funcionalidade usando características. Portanto, este guia será dedicado ao uso de características na linguagem de programação da Scala no Ubuntu 20.04.

Qual é o objetivo das características na linguagem de programação da Scala?

Já mencionamos que as características em Scala servem ao mesmo objetivo que as interfaces em Java. Isso significa que você tem permissão para criar uma interface genérica usando características do Scala, e suas aulas poderão estender essa característica implementando os métodos desejados. Além disso, uma coisa interessante sobre os traços de Scala é que você é livre para usar os métodos abstratos e não abstratos dentro de uma característica. No entanto, se você usar um método não abstrato dentro de uma característica, não precisará fornecer sua implementação dentro da classe que estenderá essa característica.

Usando as características em Scala:

Para fazer bom uso das características em Scala no Ubuntu 20.04, você terá que ler os três exemplos a seguir:

Exemplo # 1: Usando características com apenas métodos abstratos em Scala:

Na linguagem de programação da Scala, podemos ter os métodos abstratos e não abstratos dentro de uma característica. No entanto, neste exemplo, teremos apenas métodos abstratos em nossa característica definida e ver como as características funcionam na linguagem de programação da Scala. Você precisa dar uma olhada no código mostrado abaixo para entender o seguinte:

Primeiro definimos uma característica chamada "categoria" neste código Scala. Dentro dessa característica, declaramos dois métodos abstratos com a ajuda da palavra -chave "def" com os nomes "funcionário" e "funcionário_age". Portanto, como esses são métodos abstratos, nós os implementamos dentro da classe que estenderá esta característica. Em seguida, projetamos uma classe chamada "funcionário" e usamos a palavra -chave "estende" para estender a característica criada acima desta classe. Depois disso, implementamos os métodos abstratos de nossa característica nesta classe. Então, criamos outro método chamado "funcionário_name" nesta classe.

Finalmente, usamos a palavra -chave "objeto" para criar nossa classe de motorista chamada "traço". Nesta classe, temos nossa função "main ()" na qual criamos uma nova instância de nossa classe "funcionário" chamada "EMP". Em seguida, chamamos sucessivamente todas as funções desta classe (as definidas na classe e também as estendidas da característica) usando a instância desta classe.

Este script Scala pode ser compilado usando o comando abaixo:

$ SCALAC Traço.Scala

Após uma compilação bem -sucedida, este script pode ser executado com o seguinte comando:

$ scala traço

Você pode testemunhar a partir da saída mostrada abaixo que implementamos com sucesso uma classe que se estende a partir de uma característica de Scala e sua saída acabou sendo exatamente como pretendido.

Exemplo # 2: Usando características com os métodos abstratos e não abstratos em Scala:

Neste exemplo, usaremos os métodos abstratos e não abstratos em Scala. Isso significa que implementaremos alguns métodos dentro da característica e implementaremos os outros dentro da classe que estenderão essa característica. Dessa forma, queremos descobrir qual o impacto que ele deixa em nossa saída. Portanto, usaremos o mesmo exemplo que implementamos acima como uma linha de base com pequenas modificações. O programa exato Scala é o seguinte:

A diferença entre nosso primeiro e segundo exemplos é que, neste, implementamos o método "funcionário_age ()" em nossa característica. Portanto, tornou-se um método não abstrato. Por outro lado, implementamos o método "funcionário ()" em nossa classe que estendeu nossa característica. Em outras palavras, definimos apenas a assinatura dessa função em nossa característica, o que a tornou uma função abstrata. O restante do código é o mesmo que o nosso primeiro exemplo.

Agora, para ver se essa modificação deixou algum impacto em nossa saída ou não, compilamos e executamos este script. Você pode dar uma olhada na saída mostrada abaixo e confirmar que essa saída é a mesma que o nosso primeiro exemplo. Isso implica que, não importa se você usar os métodos abstratos ou não abstratos nas características de Scala, sua saída permanecerá a mesma.

Exemplo # 3: Usando várias características em Scala:

Uma aula de Scala também pode estender várias características de cada vez. O exemplo a seguir descreve o seguinte:

Novamente, usamos o mesmo exemplo que uma linha de base. A única diferença entre nosso segundo e terceiro exemplos é que, neste, criamos outra característica denominada "qualificação" e implementamos um método não abstrato dentro dessa característica. Então, ao estender nossa classe dessas características, usamos a palavra -chave "estende" com a primeira característica e usamos a palavra -chave "com" entre os nomes das duas características. Da mesma forma, se você tiver mais de duas características para estender sua classe, separará os nomes de todas as características usando a palavra -chave "com". Em nossa função "main ()", também chamamos de função da nova característica que criamos neste exemplo.

A imagem abaixo apresenta a saída desse script Scala, que confirma que uma classe pode estender várias características simultaneamente.

Conclusão:

Com a ajuda deste tutorial, queríamos lhe dar uma breve visão geral do funcionamento das características em Scala no Ubuntu 20.04. Para isso, primeiro compartilhamos com você o principal objetivo de usar as características em Scala, destacando sua estreita semelhança com as interfaces em Java. Em seguida, compartilhamos como essas características podem ser usadas com os métodos abstratos e não abstratos. Finalmente, discutimos três exemplos que usaram traços de escala efetivamente. Tentamos manter esses exemplos extremamente fáceis e simples, para que você possa pegar rapidamente a noção de usar características da Scala.