Pular para o conteúdo principal

Variáveis em Scala

Aprenda sobre variáveis em Scala: regras de definição, tipos, declarações e atribuições múltiplas e o escopo de uma variável.
Atualizado 17 de set. de 2026  · 10 min lido

Explorar com IA

ChatGPTClaudePerplexity

Confira o curso recém-lançado da DataCamp sobre Scala: Introduction to Scala.

Scala é amplamente usado por cientistas de dados para lidar com grandes volumes de dados em conjunto com o Apache Spark no universo de Big Data. É uma linguagem de programação orientada a objetos e funcional, com vários recursos essenciais, como:

  1. Scala é uma linguagem de tipagem estática: o tipo de dado da variável é definido antes do uso. A checagem de tipos acontece em tempo de compilação, não em tempo de execução.
  2. Também é "fortemente tipada": as variáveis são verificadas antes de você realizar operações com elas.
  3. Suporta inferência de tipos: o compilador infere o tipo a partir da expressão ou dos literais, então declarar o tipo da variável é opcional.

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

Variáveis

Variáveis são espaços nomeados na memória; o compilador reserva o local conforme o tipo de dado da variável correspondente. Em Scala, a declaração segue a sintaxe:

val or val variable_name: variable_datatype = value;

Na sintaxe acima, a variável pode ser definida de duas formas, usando as palavras-chave 'var' ou 'val'. Ela inclui 'variable_name' como o nome da sua nova variável, seguido de dois-pontos. O tipo da variável é 'variable_datatype', que pode ser qualquer tipo válido. Em seguida, o 'value' é atribuído a 'variable_name'.

Por exemplo:

val varValue: Byte = 8;

'val' é a palavra-chave para definir a variável, e 'varValue' é o nome. O tipo é 'Byte' e o valor é 8. 'Byte' é um valor assinado de 8 bits, que varia de 2−7 a 27−1.

O 'variable_datatype' pode ser qualquer tipo existente em Scala, como:

  1. Int: inteiro assinado de 32 bits (positivo ou negativo), com intervalo de 2−31 a 231−1.
  2. Byte: valor assinado de 8 bits, com intervalo de 2−7 a 27−1.
  3. Short: valor assinado de 16 bits, com intervalo de 2−15 a 215−1.
  4. Float: pode ser 32 bits ou 64 bits.

Da mesma forma, outros tipos como Long, Char, Boolean, String, Null têm seus próprios intervalos e particularidades. Uma explicação detalhada está no tutorial Beginner’s Guide to Scala. Além disso, 'variable_datatype' começa com letra maiúscula (por exemplo, Int com 'I'), indicando que todos esses tipos 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:

  1. Use lower camel case para nomes de variáveis. Por exemplo, em 'nameOfGirl', o 'n' inicial é minúsculo; depois, capitalize a primeira letra de cada palavra, como 'O' e 'G'.
  2. Não use palavras reservadas ou keywords de Scala como nome de variável.
  3. O nome da variável pode conter cifrão ('$') e sublinhado ('_'). Outros caracteres especiais como '#', '&' etc. não são permitidos. O uso de sublinhado é desencorajado.
  4. Não use espaço em branco (tabs, espaços) no nome da variável.
  5. O nome da variável deve começar com uma letra; não pode começar com número ou outros caracteres.

Variáveis mutáveis

Variáveis mutáveis permitem alterar seus valores mesmo depois da declaração.

A sintaxe de uma variável mutável é:

var variable_name : variable_datatype = value;

Ela também pode ser definida assim:

var variable_name = value;

Exemplo de variável mutável:

var nameOfThing: String = "Car";

No exemplo acima, var é a keyword para variáveis mutáveis. O nome é 'nameOfThing'. Em seguida vem os dois-pontos e o tipo 'String'. O valor armazenado na memória será 'Car'.

O mesmo exemplo, com sintaxe alternativa:

var nameOfThing = "Car";

Você pode definir a variável sem explicitar o tipo, como acima. O compilador de Scala determina automaticamente que é do tipo 'String' — esse recurso é chamado de inferência de tipos.

Você pode alterar o valor facilmente, assim:

nameOfThing = "Bike";
print(nameOfThing)

O valor mudará de "Car" para "Bike". A saída será "Bike", porque a palavra-chave 'var' permite reatribuir o valor da variável (Fonte: Variables in Scala).

Variáveis imutáveis

Variáveis imutáveis são aquelas cujo valor não pode ser alterado após a criação e são declaradas com a palavra-chave 'val'.

A sintaxe de uma variável imutável é:

val variable_name : variable_data type = value;

Ela também pode ser definida assim:

val variable_name = value;

Exemplo de variável imutável:

val numberOfThing: Int = 2;

No exemplo acima, val define uma variável imutável chamada 'numberOfThing'. Depois do dois-pontos, o tipo é 'Int', e o valor armazenado é 2.

O mesmo exemplo, com sintaxe alternativa:

val numberOfThing = 2;

Você pode definir a variável sem explicitar o tipo; o compilador de Scala infere que é um 'Int'. Esse processo é a inferência de tipos (Fonte: Variables in Scala).

Você não pode alterar o valor da variável, como abaixo:

numberOfThing = 7;

O exemplo acima resultará em um erro como "error: not found: value numberOfThing", mostrando que a reatribuição não é possível, conforme abaixo:

error

Declarações e atribuições múltiplas

Declarações múltiplas são possíveis em Scala usando a palavra-chave 'var', com os nomes de variáveis separados por vírgulas, e o sinal "=" com os respectivos valores.

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

No exemplo acima, as variáveis x, y e z recebem os valores 5, 4.5 e "Sit", respectivamente.

variables

Também é possível fazer atribuições múltiplas em uma linha usando 'val', com os nomes separados por vírgulas e o "=" com o valor.

val a, b, c = 1;

No exemplo acima, as variáveis a, b e c recebem todas o valor 1.

variables

Escopo de uma variável

Escopo é a visibilidade das variáveis, que têm seu tempo de vida dentro dos blocos de código onde são declaradas. A variável pode estar em escopo local ou global. Exemplo:

var globalVar = 10
def sub(){
var difference = 9-4;
}
print(difference)//Error
print(globalVar)//Valid

No código acima, 'difference' está no escopo local, pois é declarada dentro do método 'sub'; a operação de subtração funciona, mas imprimir seu valor fora do método gera erro. Já a variável global 'globalVar' pode ser acessada em qualquer parte do programa.

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

  1. Variáveis locais
  2. Fields
  3. Parâmetros de método

Variáveis locais

Variáveis locais (mutáveis ou imutáveis) são declaradas dentro de um método e só são acessíveis dentro dele.

Veja um exemplo simples de 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 gera:

The perimeter of the triangle is: 60

O programa tem uma classe 'Perimeter' e um objeto 'Test'. O método triangle possui três variáveis mutáveis: side1, side2 e side3. O cálculo e a impressão do resultado são feitos dentro do método, gerando a saída correta.

Fields

Variáveis definidas dentro da classe são chamadas de fields e podem ser mutáveis ou imutáveis. Se a variável é declarada diretamente na classe (e não dentro de um método), o modificador de acesso padrão é público, e ela pode ser acessada em qualquer lugar do programa. Já uma variável privada pode ser acessada dentro da própria classe, mas não fora do escopo da classe (nem pelo objeto).

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 gera:

Value of value2: 30
Value of value1:10
10

O programa tem a classe 'FieldExample', o objeto 'Demo' e o método 'operation'. A variável pública value1 pode ser acessada por notação de ponto e imprime 10. Já a variável privada value2 vale 30; tentar acessá-la e imprimi-la fora da classe causará erro.

Parâmetros de método

Parâmetros de método são variáveis que recebem valores quando o método é chamado; por padrão, eles são imutáveis (definidos com 'val'). Esses valores podem ser usados dentro do método e, quando há referência, podem influenciar o acesso fora do método.

Veja um exemplo simples de 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 gera:

Area of triangle is: 4.5

O programa contém a classe 'Triangle' com o método 'calculate', que recebe dois parâmetros: height e width. Os valores inteiros 4 e 5 são passados quando 'calculate' é chamado a partir da instância 'a'.

Conclusão

Parabéns por chegar ao final deste tutorial!

Nele, você viu variáveis em Scala, regras para defini-las, diferentes tipos, como fazer declarações e atribuições múltiplas e como funciona o escopo.

Se quiser aprender mais sobre Scala, faça o curso Introduction to Scala da DataCamp.

Tópicos
Scala

Cursos de Python

Curso

Introdução a Scala

3 h
27.1K
Comece sua jornada com Scala, uma linguagem popular para aplicativos escaláveis e infraestrutura de engenharia de dados.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Escopo das variáveis em Python e a regra `LEGB` explicada

Aprenda o que são escopos de variáveis e familiarize-se com a regra “LEGB”. Você também vai lidar com cenários em que poderá ver as palavras-chave globais e não locais em ação.
Sejal Jaiswal's photo

Sejal Jaiswal

8 min

Tutorial

Operador da morsa do Python: A expressão de atribuição (Tutorial)

O operador de morsa do Python := permite que você atribua um valor a uma variável dentro de uma expressão, combinando atribuição e uso em uma única etapa.
Stephen Gruppetta's photo

Stephen Gruppetta

8 min

Tutorial

Operadores em Python

Este tutorial aborda os diferentes tipos de operadores em Python, sobrecarga de operadores, precedência e associatividade.
Théo Vanderheyden's photo

Théo Vanderheyden

9 min

Tutorial

Declaração de caso de troca do Python: Um guia para iniciantes

Explore o match-case do Python: um guia sobre sua sintaxe, aplicativos em ciência de dados, ML e uma análise comparativa com o switch-case tradicional.
Matt Crabtree's photo

Matt Crabtree

5 min

Tutorial

Como escrever um script Bash: um tutorial simples de scripts Bash

Descubra os fundamentos da criação de scripts Bash e aprenda a escrever um script Bash.
Kurtis Pykes 's photo

Kurtis Pykes

5 min

multiple linear regression

Tutorial

Regressão linear múltipla no R: Tutorial com exemplos

Uma visão geral completa para entender as regressões lineares múltiplas no R por meio de exemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

Ver MaisVer Mais