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

Scala 数据类型

Scala ha gli stessi tipi di dati di Java, la tabella seguente elenca i tipi di dati supportati da Scala:

Tipo di dati描述
ByteIntero a complemento a 8 bit. Intervallo numerico da -128 a 127
ShortIntero a complemento a 16 bit. Intervallo numerico da -32768 a 32767
Int Intero a complemento a 32 bit. Intervallo numerico da -2147483648 a 2147483647
Long Intero a complemento a 64 bit. Intervallo numerico da -9223372036854775808 a 9223372036854775807
FloatNumero in virgola mobile a 32 bit secondo lo standard IEEE 754
DoubleNumero in virgola mobile a 64 bit secondo lo standard IEEE 754
CharCarattere Unicode a 16 bit, intervallo di valori da U+0000 a U+FFFF
StringCadena di caratteri
Booleantrue o false
UnitRappresenta un valore vuoto, equivalente a void in altri linguaggi. È usato come tipo di risultato di un metodo che non restituisce alcun risultato. Unit ha un solo valore d'istanza, scritto come ().
Nullnull o riferimento vuoto
NothingIl tipo Nothing si trova al fondo della gerarchia delle classi in Scala; è un sottotipo di qualsiasi altro tipo. È usato come tipo di risultato di un metodo che non restituisce alcun risultato. Unit ha un solo valore d'istanza, scritto come ().
AnyAny è il superclasse di tutti gli altri tipi di classe
AnyRefLa classe AnyRef è la classe base di tutti i reference class in Scala

Tutti i tipi di dati elencati nella tabella sopra sono oggetti, il che significa che Scala non ha i tipi nativi di Java. In Scala è possibile chiamare metodi sui tipi di base come i numeri.

Letterale di base di Scala

Scala è molto semplice e intuitivo. In seguito esploreremo nel dettaglio i letterali di Scala.

Letterale di tipo intero

I letterali di tipo intero sono utilizzati per il tipo Int. Se si desidera rappresentare un Long, è possibile aggiungere L o l minuscola come suffisso alla fine del numero.:

0
035
21 
0xFFFFFFFF 
0777L

Letterale di tipo floating-point

Se il numero floating-point è seguito da un suffisso f o F, rappresenta un tipo Float, altrimenti è un tipo Double. Esempio di seguito:

0.0 
1e30f 
3.14159f 
1.0e100
.1

Letterale booleano

I letterali booleani sono true e false.

Letterale di simbolo

Il letterale di simbolo viene scritto come: '<Identificatore> qui <Identificatore> Può essere qualsiasi identificatore composto da lettere o numeri (nota: non può iniziare con un numero). Questo letterale viene mappato all'istanza della classe predefinita scala.Symbol.

Ad esempio: Letterale di simbolo 'x è un'espressione scala.Symbol("x") è abbreviazione, la definizione del letterale di simbolo è come segue:

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

Letterale di carattere

Nella variabile di carattere di Scala si utilizzano virgolette singole ' Definito come segue:

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

Tra cui \ Rappresenta un carattere di escape, che può essere seguito da u0041 Numero o \r\n e altri caratteri di escape fissi.

Letterale di stringa

Nella letteratura di Scala si utilizzano virgolette doppie per le stringhe letterali "" Definito come segue:

"Hello,\nWorld!"
"Sito ufficiale del corso di base: it.oldtoolbag.com"

Metodi di rappresentazione delle stringhe multiligne

Le stringhe multiligne vengono rappresentate utilizzando tre virgolette doppi come separatori, con il formato:""" ... """

Esempio di seguito:

val foo = """Corso di base"
it.oldtoolbag.com
it.oldtoolbag.com
www.runnoob.com
Le tre seguenti indirizzi possono accedere a """

Valore Null

Il valore nullo è del tipo scala.Null.

Scala.Null e scala.Nothing sono tipi speciali che trattano in modo unificato alcune "casistiche estreme" del sistema di tipi orientati agli oggetti di Scala.

Il tipo Null è il tipo di riferimento per l'oggetto null, è un sottoinsieme di ogni classe di riferimento (classi che ereditano da AnyRef). Null non è compatibile con i tipi di valore.}

Scala 转义字符

下表列出了常见的转义字符:

转义字符Unicode描述
\b\u0008退格(BS) ,将当前位置移到前一列
\t\u0009水平制表(HT) (跳到下一个TAB位置)
\n\u000a换行(LF) ,将当前位置移到下一行开头
\f\u000c换页(FF),将当前位置移到下页开头
\r\u000d回车(CR) ,将当前位置移到本行开头
\"\u0022代表一个双引号(")字符
\'\u0027代表一个单引号(')字符
\\\u005c代表一个反斜线字符 '\'

0 到 255 间的 Unicode 字符可以用一个八进制转义序列来表示,即反斜线‟\‟后跟 最多三个八进制。

在字符或字符串中,反斜线和后面的字符序列不能构成一个合法的转义序列将会导致 编译错误。

以下实例演示了一些转义字符的使用:

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

运行后输出结果如下:

$ scalac Test.scala
$ scala TestHello    World