Introdução
Scala foi projetada por Martin Odersky, um professor na École Polytechnique Fédérale de Lausanne (EPFL) na Suíça e um cientista informático alemão. Martin começou a trabalhar na criação de Scala em 2001, e a primeira versão foi lançada em 2004.
Scala significa Scalable Language
. É uma linguagem de propósito geral, orientada a objetos que compartilha algumas similaridades com a linguagem de programação Java. Ela fornece suporte para programação funcional. Muitas das decisões de projeto de Scala foram feitas para address os desvantagens da linguagem de programação Java.
Algumas funcionalidades que Scala oferece são:
-
O código fonte de Scala pode ser compilado para bytecode Java e portanto, é executável em uma Máquina Virtual Java (JVM).
-
Ela fornece interoperabilidade de linguagem com Java, permitindo que bibliotecas escritas em qualquer uma das linguagens sejam referenciadas no Scala ou na base de código Java.
-
Como a Java, Scala também usa uma sintaxe com chaves.
-
Ela tem muitas funcionalidades de linguagens de programação funcional, como Scheme, Standard Machine Learning e Haskell, incluindo currying, inclusão de tipo, imutabilidade, avaliação lazy e correspondência de padrões.
-
Suporte a aplicativos Web usando JavaScript.
-
Contrário ao Java, o Scala também suporta sobrecarga de operadores, parâmetros opcionais, parâmetros nomeados e strings cruas.
Um fato interessante sobre o Scala é que ele é amplamente usado por empresas como Apple, Twitter, Walmart e Google devido à sua escalabilidade e à capacidade de ser usado em operações de backend.
Configurando o Scala no Jupyter Notebook
O Jupyter notebook é a ferramenta mais amplamente usada na ciência da computação, especialmente no domínio da ciência de dados. Ele também tem suporte para desenvolvimento em Scala com a ajuda do spylon-kernel
.
Nota: Para aqueles que são novos no Jupyter notebook, sinta-se livre para verificar este tutorial abrangente.
A configuração do ambiente Scala no Jupyter notebook não é ciência espacial. Então, vamos configurá-lo rapidamente em apenas alguns passos.
-
A primeira coisa que você fará é instalar o
spylon-kernel
.pip install spylon-kernel
(Python 2)pip3 install spylon-kernel
(Python 3) -
A seguir, você criará uma especificação de kernel que lhe permitirá selecionar o
scala-kernel
na nota de blocos jupyter.python -m spylon_kernel install
(Python 2)python3 -m spylon_kernel install
(Python 3) -
Em seguida, como um passo importante, você instalará
pyspark
efindspark
já que ospylon-kernel
também instala alguns componentes dospark
.pip install pyspark findspark
(Python 2)pip3 install pyspark findspark
(Python 3) -
Finalmente, inicie sua nota de jupyter e escolha o núcleo como
spylon-kernel
e você está pronto para começar!
- Vamos executar um pequeno pedaço de código para testar se o núcleo Scala está configurado corretamente ou não.
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6
Muito bom! Então, como você pode observar a partir da saída acima, você teve sucesso em configurar o ambiente Scala na nota de jupyter.
Sintaxe Básica
Vamos começar imprimindo Hello, World!
em Scala.
print("Hello, World!")
Hello, World!
Como você pode ver, foi muito simples, apenas um comando print
seguido do input como um argumento.
Agora, vamos olhar para alguns detalhes de sintaxe relacionados em Scala:
-
Scala é case-sensitive, o que significa que os identificadores
DataCamp
edataCamp
teriam significados diferentes em Scala. -
Em Scala, todos class names primeira letra devem estar em
Upper Case
. Se muitas palavras forem combinadas para formar o nome da classe, a primeira letra de cada palavra separada deve estar em Maiúsculas. Por exemplo,class MyScalaDataCampTutorial
. -
Os nomes de métodos em Scala funcionam de forma ligeiramente diferente em comparação com
nomes de classes
principalmente para distinguir osnomes de métodos
denomes de classes
. Os nomes de métodos devem começar com letra minúscula (Source). Se múltiplas palavras forem combinadas para formar o nome do método, então a primeira letra de cada palavra interna deve ser em maiúsculo. Por exemplo,def firstDatacampScalaTutorial()
-
Em Scala, o nome do arquivo de programa deve corresponder exatamente ao nome do objeto. Ao salvar o arquivo, você precisa salvar usando o nome do objeto e acrescentar
.scala
no final do nome. Por exemplo, digamos queScalaTutorial
é o nome do objeto. Então o arquivo deve ser salvo comoScalaTutorial.scala
.Nota: Se o nome do arquivo e o nome do objeto não conferem, então seu programa não será nem compilado.
-
Finalmente, como a maioria dos linguagens de programação, o processamento de programas em Scala também começa pela função
main()
, que é uma parte crucial de todos os programas em Scala.
A figura abaixo mostra as palavras reservadas em Scala que não podem ser usadas como constantes ou variáveis ou como outros identificadores.

Tipos de Dados
Tipos de dados em Scala são quase idênticos a muitas outras linguagens de programação como C, C++, Java, Python, etc., com uma pegada de memória e precisão semelhantes.
Finalmente, vamos olhar para alguns dos tipos de dados que existem em Scala:
-
Int: Um valor de 32 bits assinado (pode tomar valores positivos e negativos) tem um intervalo de $2^{-31}$ a $2^{31} – 1$
-
Byte: Um valor de 8 bits assinado tem um intervalo de $2^{-7}$ a $2^{7} – 1$
-
Short: Um valor de 16 bits assinado tem um intervalo de $2^{-15}$ a $2^{15} – 1$
-
Long: Um valor de 64 bits assinado tem um intervalo de $2^{-63}$ a $2^{63} – 1$
-
Float: Tanto 32 bits (ponto flutuante de precisão simples) quanto 64 bits (ponto flutuante de precisão dupla)
-
Char: Um caractere Unicode de 16 bits não assinado (só pode tomar valores positivos).
Alguns dos outros tipos de dados são String, Boolean, Null.
Conclusão
Parabéns por completar este tutorial.
Ele é um bom ponto de partida para iniciantes interessados em aprender Scala.
Para aprender mais, confira os tutoriais de Scala no DataCamp:
Basics of Functions and Methods in Scala
Há uma quantidade impressionante de informações relacionadas a Scala que permanecem desdobrando-se, como if/else, laços for, vários operadores em Scala, etc., que serão cobertos em futuros tutoriais, então fique ligado!
Referências:
Por favor, sinta-se à vontade para fazer qualquer pergunta relacionada a este tutorial na seção de comentários abaixo.
Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala