Curso
Introdução

Scala foi criada por Martin Odersky, professor na École Polytechnique Fédérale de Lausanne (EPFL), na Suíça, e cientista da computação alemão. Martin começou a trabalhar na linguagem em 2001 e o primeiro lançamento ocorreu em 2004.
Scala significa Scalable Language. É uma linguagem de propósito geral, orientada a objetos, que tem diversos pontos em comum com Java. Também oferece suporte a programação funcional. Muitas das decisões de design do Scala visam resolver limitações da linguagem Java.
Alguns recursos que o Scala oferece:
-
O código-fonte de Scala pode ser compilado para bytecode Java e, portanto, executado na Java Virtual Machine (JVM).
-
Interoperabilidade com Java: bibliotecas escritas em qualquer uma das linguagens podem ser utilizadas em bases de código Scala ou Java.
-
Assim como Java, Scala também usa sintaxe com chaves.
-
Incorpora vários recursos de linguagens funcionais como Scheme, Standard ML e Haskell, incluindo currying, inferência de tipos, imutabilidade, avaliação preguiçosa (lazy) e pattern matching.
-
Suporte a aplicativos Web usando JavaScript.
-
Diferente de Java, Scala suporta sobrecarga de operadores, parâmetros opcionais, parâmetros nomeados e strings brutas.
Um fato interessante sobre Scala é que ele é amplamente usado por empresas como Apple, Twitter, Walmart e Google, graças à sua escalabilidade e à capacidade de uso em operações de backend.
Configurando Scala no Jupyter Notebook
O Jupyter Notebook é uma das ferramentas mais usadas em computação, especialmente em ciência de dados. Ele também oferece suporte a desenvolvimento em Scala com a ajuda do spylon-kernel.
Observação: Se você é novo no Jupyter Notebook, vale a pena conferir este guia completo.
Configurar o ambiente Scala no Jupyter Notebook é simples. Vamos fazer isso rapidamente em poucos passos.
-
Primeiro, instale o
spylon-kernel.pip install spylon-kernel(Python 2)pip3 install spylon-kernel(Python 3) -
Depois, crie a especificação do kernel para poder selecionar o
scala-kernelno Jupyter Notebook.python -m spylon_kernel install(Python 2)python3 -m spylon_kernel install(Python 3) -
Em seguida, uma etapa importante: instale
pysparkefindspark, já que ospylon-kerneltambém instala alguns componentes dospark.pip install pyspark findspark(Python 2)pip3 install pyspark findspark(Python 3) -
Por fim, inicie o Jupyter Notebook, escolha o kernel
spylon-kernele pronto!

- Vamos rodar um pequeno trecho de código para testar se o kernel Scala foi configurado corretamente.
val x = 2
val y = 3
x*y
x: Int = 2
y: Int = 3
res1: Int = 6
Perfeito! Como você pode ver na saída acima, a configuração do ambiente Scala no Jupyter Notebook foi concluída com sucesso.
Sintaxe básica
Vamos começar imprimindo Hello, World! em Scala.
print("Hello, World!")
Hello, World!
Bem simples: um comando print seguido do texto como argumento.
Agora, alguns detalhes de sintaxe em Scala:
-
Scala diferencia maiúsculas de minúsculas (case-sensitive). Ou seja, os identificadores
DataCampedataCamptêm significados diferentes. -
Em Scala, os nomes de classes devem começar com letra
maiúscula. Se o nome tiver várias palavras, a primeira letra de cada uma deve ser maiúscula. Exemplo:class MyScalaDataCampTutorial. -
Os nomes de métodos seguem uma convenção diferente de
nomes de classes, principalmente para distingui-los. Os métodos devem começar com letra minúscula (Fonte). Se houver várias palavras, cada palavra interna começa com maiúscula. Exemplo:def firstDatacampScalaTutorial() -
Em Scala, o nome do arquivo do programa deve corresponder exatamente ao nome do objeto. Ao salvar, use o nome do objeto e acrescente
.scala. Por exemplo, se o objeto se chamaScalaTutorial, o arquivo deve serScalaTutorial.scala.Observação: se o nome do arquivo e do objeto não forem iguais, o programa nem compila.
-
Por fim, como na maioria das linguagens, a execução de um programa em Scala começa pelo método
main(), que é parte essencial de qualquer programa em Scala.
A figura abaixo mostra as palavras reservadas do Scala, que não podem ser usadas como constantes, variáveis ou quaisquer outros identificadores.
Tipos de dados
Os tipos de dados em Scala são quase idênticos aos de várias outras linguagens como C, C++, Java, Python etc., com tamanhos e precisão semelhantes.
Por fim, confira alguns tipos de dados existentes em Scala:
-
Int: Um valor assinado de 32 bits (aceita valores positivos e negativos) com faixa de $2^{-31}$ a $2^{31} - 1$
-
Byte: Um valor assinado de 8 bits com faixa de $2^{-7}$ a $2^{7} - 1$
-
Short: Um valor assinado de 16 bits com faixa de $2^{-15}$ a $2^{15} - 1$
-
Long: Um valor assinado de 64 bits com faixa de $2^{-63}$ a $2^{63} - 1$
-
Float: Tanto 32 bits (ponto flutuante de precisão simples) quanto 64 bits (ponto flutuante de dupla precisão)
-
Char: Um caractere Unicode sem sinal de 16 bits (aceita apenas valores positivos).
Outros tipos de dados incluem String, Boolean e Null.
Conclusão
Parabéns por concluir este tutorial.
É um ótimo ponto de partida para quem quer aprender Scala.
Para continuar aprendendo, confira os tutoriais de Scala da DataCamp:
Noções básicas de funções e métodos em Scala
Há uma infinidade de tópicos sobre Scala ainda por explorar — como if/else, laços for, vários operadores etc. — que serão abordados em tutoriais futuros. Fique de olho!
Referências:
Se tiver dúvidas sobre este tutorial, deixe sua pergunta nos comentários abaixo.
