Variáveis em Scala

Clique aqui para acessar o curso de Scala recentemente lançado pelo DataCamp: Introdução a Scala.

Scala é amplamente usado por cientistas de dados quando se trata de grandes volumes de dados usados com o Apache Spark juntos no campo de Big Data. É tanto uma linguagem orientada a objetos quanto uma linguagem funcional com muitas outras funcionalidades essenciais listadas abaixo:

  1. Scala é conhecida como uma linguagem estaticamente tipada, onde o tipo de dados para a variável é definido antes de ser usado. A verificação de tipo é feita no tempo de compilação em vez do tempo de execução.
  2. Também é uma linguagem “Forte em Tipos”, onde as variáveis são verificadas antes de realizar uma operação nele.
  3. Também suporta Inferência de Tipo, onde o compilador deduz o tipo da expressão ou literais, portanto, declarar o tipo da variável é opcional.

Neste tutorial, você vai abordar os seguintes tópicos:

Variáveis

Variáveis são o espaço nomeado em memória, e o compilador aloca locais reservados de acordo com o tipo de dado das variáveis correspondentes. A variável é declarada com a seguinte sintaxe em Scala:

val or val variable_name: variable_datatype = value;

Na sintaxe acima, a variável pode ser definida de duas formas diferentes usando o keyword ‘var’ ou ‘val’. Consiste em ‘variable_name’ como sua nova variável, seguido de uma barra. O tipo de dado da variável é ‘variable_datatype.’ que pode ser qualquer tipo de dado válido. Depois disso, ‘value’, o símbolo é atribuído a ‘variable_name.’

Por exemplo:

val varValue: Byte = 8;

O ‘val’ é o keyword para definir a variável, e ‘varValue’ é o nome da variável. É do tipo de dado ‘Byte’ e contém o valor 8. ‘Byte’ é um valor de 8 bits com sinal, que varia de 2−7 a 27−1.

O ‘variable_datatype’ acima pode ser de qualquer tipo de dado que existe em Scala e são os seguintes.

  1. Int: É um valor de 32 bits com sinal (valor positivo ou negativo), que varia de 2−31 a 231−1.
  2. Byte: É um valor de 8 bits com sinal, que varia de 2−7 a 27−1.
  3. Short: É um valor de 16 bits com sinal que varia de 2−15 a 215−1.
  4. Float: Pode ser de 32 bits ou 64 bits.

As mesmas regras se aplicam a outros tipos de dados como Long, Char, Boolean, Char, String, Boolean, Null, que possuem seus próprios intervalos, e uma explicação detalhada é fornecida no tutorial Guia do Iniciante em Scala. Além disso, ‘variável_tipo’ deveria começar com letra maiúscula, ou seja, Int contém ‘I’, o que indica que todos os tipos de dados acima são objetos em Scala.

Regras para Definir Variáveis em Scala

As regras e convenções para definir variáveis em Scala são as seguintes:

  1. O nome da variável começa com camelCase minúsculo. Por exemplo, no nome da variável ‘nomeDaGarota’, contém ‘n’ como alfabeto pequeno. Depois disso, capitaliza a primeira letra de cada palavra como ‘D’ e ‘G’.
  2. O nome da variável não deve conter palavra reservada ou palavra-chave definida em Scala.
  3. O nome da variável pode conter o sinal de dólar (‘$’) e o caractere underscore (‘_’). No entanto, outros caracteres especiais, como ‘#’, ‘&’, etc., não são permitidos. Além disso, o uso de underscore é desencorajado.
  4. Espaços em branco (tabulações, espaços) não são permitidos em nomes de variáveis.
  5. O nome da variável deve começar com uma letra e não pode começar com um número ou outros caracteres.

Variáveis Mutáveis

Variáveis mutáveis permitem alterar os valores das variáveis mesmo após a declaração delas.

A sintaxe de variável mutável é mostrada abaixo:

var variable_name : variable_datatype = value;

A sintaxe de variáveis mutáveis pode também ser definida da seguinte forma:

var variable_name = value;

O exemplo de variável mutável é mostrado abaixo:

var nameOfThing: String = "Car";

O exemplo acima contém var como uma palavra-chave, que é usada para definir variáveis mutáveis. O nome da variável é ‘nameOfThing’. Uma barra de dois pontos o segue com o tipo de dado da variável sendo ‘String’. Seu valor armazenado em memória será ‘Car’.

O exemplo acima de variável mutável com a sintaxe diferente pode ser feito como abaixo:

var nameOfThing = "Car";

Você pode definir sua variável sem o tipo de dado da variável, como feito acima. O compilador Scala automaticamente determina que é um tipo de dado ‘String’, o que é chamado de Inferência de Tipo.

Você pode facilmente alterar o valor da variável, conforme feito abaixo:

nameOfThing = "Bike"; print(nameOfThing)

O valor da variável mudará de “Car” para “Bike”. A saída será “Bike”, pois a palavra-chave ‘var’ permite que você altere o valor da variável (Fonte: Variáveis em Scala).

Variáveis Imutáveis

Variáveis imutáveis são aquelas variáveis que não podem ter seu valor alterado uma vez criadas e são declaradas usando a palavra-chave ‘val’.

A sintaxe da variável imutável é mostrada abaixo:

val variable_name : variable_data type = value;

A sintaxe da variável imutável pode também ser definida da seguinte forma:

val variable_name = value;

O exemplo da variável imutável é mostrado abaixo:

val numberOfThing: Int = 2;

O exemplo acima contém val como uma palavra-chave para definir variáveis imutáveis e o nome da variável é ‘numberOfThing.’ Ele é seguido por um ponto e vírgula com o tipo de dado da variável sendo ‘Int’ junto com o valor armazenado em memória é 2.

O exemplo acima de variável imutável com a sintaxe diferente pode ser feito conforme abaixo:

val numberOfThing = 2;

Você pode definir sua variável sem o tipo de dado da variável, como feito acima, onde o compilador Scala automaticamente identifica como sendo o tipo de dado ‘Int’. O processo é chamado de Inferência de Tipo (Fonte: Variáveis em Scala).

Você não pode mudar o valor da variável, conforme feito abaixo:

numberOfThing = 7;

O exemplo acima resultará em um erro como “erro: not found: value numberOfThing”, que mostra que a reatribuição de valor é impossível, conforme mostrado abaixo:

Múltiplas Declarações e Atribuições

Múltiplas declarações são possíveis em Scala usando a palavra-chave ‘var’ com o nome das variáveis separadas por vírgulas e o sinal “=” com o valor para a variável.

var (x, y, z) = (5, 4.5, "Sit")

No exemplo acima, você pode ver que todas as variáveis x, y e z são atribuídas aos valores 5, 4.5 e “Sit” respectivamente, conforme segue.

Múltiplas atribuições são possíveis em Scala em uma linha usando a palavra-chave ‘val’ com o nome das variáveis separadas por vírgulas e o sinal “=” com o valor para a variável.

val a, b, c = 1;

No exemplo acima, você pode ver que todas as variáveis a, b e c são atribuídas aos valores 1, conforme segue.

Escopo de uma Variável

O escopo é a visibilidade das variáveis que têm seu tempo de vida dentro dos blocos especificados do código. A variável pode ser definida em Escopo Local ou Global. Por exemplo:

var globalVar = 10 def sub(){ var difference = 9-4; } print(difference)//Erro print(globalVar)//Válido

No código acima, a variável ‘difference’ está em Escopo Local onde é declarada dentro do método ‘sub’, e a operação de subtração dará resultados válidos, mas imprimir o valor fora do método ‘sub’ causará um erro. Existe também um Escopo Global onde a variável ‘globalVar’ pode ser acessada em qualquer lugar do programa, e qualquer operação pode ser realizada nela.

Existem três tipos de escopo para variáveis em Scala (Fonte: Scala- Variables):

  1. Variáveis Locais
  2. Campos
  3. Parâmetros de Método

Variáveis Locais

Variáveis locais são variáveis mutáveis ou imutáveis que são declaradas dentro de um método e só podem ser acessadas dentro dos métodos, mas não fora deles.

Você pode ver o exemplo simples abaixo para saber sobre variáveis locais:

class Perimeter { def triangle() { var side1 = 10; var side2 = 20; var side3 = 30; var total = side1+side2+side3; print("Perimeter of the triangle is: " + total); } } object Test { def main(args:Array[String]) { val p1 = new Perimeter() p1.triangle() } }
defined class Perimeter defined object Test

O código acima dá o resultado:

O perímetro do triângulo é: 60

O programa acima contém uma classe chamada ‘Perimeter’ e um objeto chamado ‘Test’, onde há um método chamado triangle com três variáveis mutáveis chamadas side1, side2, side3. O cálculo e a impressão do resultado serão feitos dentro do método, o que dará a saída correta.

Campos

Essas variáveis definidas dentro da classe são conhecidas como variáveis de campo, que podem ser de qualquer tipo, seja mutável ou imutável. O modificador de acesso será automaticamente público se a variável for declarada dentro da classe, mas não deve ser definida dentro de qualquer método onde a variável seja acessível em qualquer parte do programa. No entanto, uma variável privada pode ser acessada dentro da classe definida, mas não pode ser acessada fora do escopo da classe ou mesmo no objeto também.

class FieldExample { var value1 = 10; private var value2 = 30; def operation() { println("Value of value1:"+value1) } println("Value of value2: "+value2); } object Demo { def Main(args:Array[String]) { val obj = new FieldExample() obj.operation() print(obj.value1)//Valid print(obj.value2) } }
defined class FieldExample defined object Demo

O código acima dá o seguinte resultado:

Valor de value2: 30
Valor de value1:10
10

O programa acima contém uma classe chamada ‘FieldExample’, o objeto a ser ‘Demo’ e um método como ‘operation’. A variável pública value1 pode ser acessada usando a notação de ponto e o valor é impresso como 10. A variável privada value2 é 30, onde acessar essa variável e imprimir causará um erro.

Parâmetros de Método

Os parâmetros de método são as variáveis que aceitam o valor quando o método está sendo chamado e a variável deve ser mutável, definida usando a palavra-chave ‘val’. Além disso, a variável pode ser acessada fora do método quando há uma referência feita a ela.

Você pode ver o exemplo simples abaixo para saber sobre Parâmetros de Método:

class Triangle { def calculate(height: Int, width: Int) { var result = 0.5*(height+width); println("Area of triangle is: " + result); } } object Area { def main(args:Array[String]) { val a = new Triangle() a.calculate(4,5); } }
defined class Triangle defined object Area

O código acima dá o seguinte resultado:

Área de triângulo é: 4.5

O programa acima contém uma classe chamada ‘Triangle.’ Inclui um método chamado ‘calculate’ com dois parâmetros de método altura e largura. O valor inteiro 4 e 5 são passados quando ‘calculate’ é chamado usando a instância de objeto a.

Conclusão

Parabéns, você chegou ao final deste tutorial!

Neste tutorial, você cobriu sobre as variáveis em Scala, regras para definir variáveis, diferentes tipos de variáveis com Declarações e Atribuições Múltiplas, além do Escopo da variável.

Se você gostaria de aprender mais sobre Scala, tome o curso da DataCamp Introdução ao Scala.

Source:
https://www.datacamp.com/tutorial/variables-in-scala