English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tipos de Dados do Scala

Scala compartilha os mesmos tipos de dados com Java. A tabela a seguir lista os tipos de dados suportados pelo Scala:

Tipo de dadosDescrição
Byte8Número inteiro de sinal complemento à direita com sinal. O intervalo de valores é -128 até 127
Short16Número inteiro de sinal complemento à direita com sinal. O intervalo de valores é -32768 até 32767
Int 32Número inteiro de sinal complemento à direita com sinal. O intervalo de valores é -2147483648 até 2147483647
Long 64Número inteiro de sinal complemento à direita com sinal. O intervalo de valores é -9223372036854775808 até 9223372036854775807
Float32 IEEE 754 Número de precisão simples padrão
Double64 IEEE 754 Número de precisão dupla padrão
Char16Caractere Unicode sem sinal, intervalo de valores U+0000 até U+FFFF
StringSequência de caracteres
Booleantrue ou false
UnitRepresenta um valor ausente, equivalente ao void em outros idiomas. Usado como tipo de resultado de métodos que não retornam nada. Unit possui apenas um valor instância, escrito como ().
Nulonull ou referência nula
NadaO tipo Nothing está na parte mais baixa da hierarquia de classes no Scala; é subtipo de qualquer outro tipo.
AnyAny é a superclasse de todos os outros tipos
AnyRefA classe AnyRef é a classe base para todas as classes de referência (reference class) no Scala

Os tipos de dados listados na tabela acima são objetos, o que significa que Scala não tem tipos nativos como no Java. Em Scala, é possível chamar métodos de tipos básicos como números.

Literais básicos Scala

Scala é muito simples e intuitivo. Vamos detalhar a seguir os literais Scala.

Literais inteiros

Literais inteiros são usados para o tipo Int, se representar Long, pode adicionar L ou l em minúsculo no final do número.:

0
035
21 
0xFFFFFFFF 
0777L

Literais de ponto flutuante

Se o número de ponto flutuante tiver o sufixo f ou F, é um tipo Float, caso contrário, é um tipo Double. Exemplo a seguir:

0.0 
1e30f 
3.14159f 
1.0e100
.1

Literais booleanos

Literais booleanos têm true e false.

expressão literal de símbolo

A expressão literal de símbolo é escrita como: '<identificador> aqui <identificador> Pode ser qualquer identificador composto por letras ou números (observe: não pode começar com um número). Este tipo de literal é mapeado para a instância da classe pré-definida scala.Symbol.

como: expressão literal de símbolo 'x é uma expressão scala.Symbol("x") abreviação, a definição da expressão literal de símbolo é conforme abaixo:

package scala
final case class Symbol private (name: String) {
   override def toString: String = "'" + name
}

Caracteres literais

Os caracteres literais em variáveis de String Scala são representados por aspas simples ' definido, conforme abaixo:

'a' 
'\u0041'
'\n'
'\t'

onde \ representa um caractere de escape, que pode ser seguido por u0041 Número ou \r\n e outros caracteres de escape fixos.

String literais

As strings literais em Scala usam aspas duplas " definido, conforme abaixo:

"Olá,\nMundo!"
"Página do manual básico: pt.oldtoolbag.com"

Método de representação de strings multi-líneas

As strings multi-líneas são representadas por três aspas duplas como delimitador, no formato:""" ... """.

Exemplo a seguir:

val foo = """Manual Básico
pt.oldtoolbag.com
pt.oldtoolbag.com
www.runnoob.com
Os três endereços acima podem acessar ""

Valor nulo

O valor nulo é do tipo scala.Null.

Scala.Null e scala.Nothing são tipos especiais que tratam de certos "casos limite" do sistema de tipos orientado a objetos do Scala de maneira uniforme.

A classe Null é o tipo de referência de objeto null, que é subclasse de cada classe de referência (classe que herda de AnyRef). Null não é compatível com tipos de valor.

Caracteres de Escape do Scala

A tabela a seguir lista os caracteres de escape comuns:

Caracteres de EscapeUnicodeDescrição
\b\u0008Backspace (BS), move a posição atual para a coluna anterior
\t\u0009Horizontal Tab (HT) (pula para a próxima posição de TAB)
\n\u000aLine Feed (LF), move a posição atual para o início da próxima linha
\f\u000cForm Feed (FF), move a posição atual para o início da próxima página
\r\u000dCarriage Return (CR), move a posição atual para o início da linha
\"\u0022representa um caractere de aspa dupla (")
\'\u0027representa um caractere de aspa simples (')
\\\u005crepresenta um caractere de barra invertida '\'

0 até 255 o caractere Unicode entre máximo de três octal.

Em caracteres ou strings, a barra invertida e a sequência de caracteres subsequentes não podem constituir uma sequência de escape válida, o que causará Erro de Compilação.

A seguir, demonstramos o uso de alguns caracteres de escape:

object Test {
   def main(args: Array[String]) {
      println("Hello\tWorld\n\n");
   }
}

Os resultados de execução após a execução são os seguintes:

$ scalac Test.scala
$ scala TestHello    World