Scala - Datentypen
Scala hat dieselben Datentypen wie Java, denselben Speicherbedarf und dieselbe Genauigkeit. In der folgenden Tabelle finden Sie Details zu allen in Scala verfügbaren Datentypen.
Sr.Nr. | Datentyp & Beschreibung |
---|---|
1 | Byte 8-Bit-Wert mit Vorzeichen. Bereich von -128 bis 127 |
2 | Short 16 Bit vorzeichenbehafteter Wert. Bereich -32768 bis 32767 |
3 | Int 32-Bit-Wert mit Vorzeichen. Bereich -2147483648 bis 2147483647 |
4 | Long 64-Bit-Wert mit Vorzeichen. -9223372036854775808 bis 9223372036854775807 |
5 | Float 32-Bit-Float mit einfacher Genauigkeit nach IEEE 754 |
6 | Double 64-Bit-Float mit doppelter Genauigkeit nach IEEE 754 |
7 | Char 16-Bit-Unicode-Zeichen ohne Vorzeichen. Bereich von U + 0000 bis U + FFFF |
8 | String Eine Folge von Zeichen |
9 | Boolean Entweder das wörtliche wahr oder das wörtliche falsch |
10 | Unit Entspricht keinem Wert |
11 | Null Null oder leere Referenz |
12 | Nothing Der Subtyp jedes anderen Typs; enthält keine Werte |
13 | Any Der Supertyp eines beliebigen Typs; Jedes Objekt ist vom Typ Beliebig |
14 | AnyRef Der Supertyp eines beliebigen Referenztyps |
Alle oben aufgeführten Datentypen sind Objekte. Es gibt keine primitiven Typen wie in Java. Dies bedeutet, dass Sie Methoden auf einem Int, Long usw. aufrufen können.
Scala Basic Literals
Die Regeln, die Scala für Literale verwendet, sind einfach und intuitiv. In diesem Abschnitt werden alle grundlegenden Scala-Literale erläutert.
Integrale Literale
Ganzzahlige Literale sind normalerweise vom Typ Int oder vom Typ Long, wenn ein Suffix L oder l folgt. Hier sind einige ganzzahlige Literale -
0
035
21
0xFFFFFFFF
0777L
Gleitkomma-Literal
Gleitkomma-Literale sind vom Typ Float, gefolgt von einem Gleitkomma-Suffix F oder f, andernfalls vom Typ Double. Hier sind einige Gleitkomma-Literale -
0.0
1e30f
3.14159f
1.0e100
.1
Boolesche Literale
Die booleschen Literale true und false sind Mitglieder vom Typ Boolean.
Symbol Literale
Ein Symbolliteral 'x ist eine Abkürzung für den Ausdruck scala.Symbol("x"). Symbol ist eine Fallklasse, die wie folgt definiert ist.
package scala
final case class Symbol private (name: String) {
override def toString: String = "'" + name
}
Zeichenliterale
Ein Zeichenliteral ist ein einzelnes Zeichen in Anführungszeichen. Das Zeichen ist entweder ein druckbares Unicode-Zeichen oder wird durch eine Escape-Sequenz beschrieben. Hier sind einige Zeichenliterale -
'a'
'\u0041'
'\n'
'\t'
String-Literale
Ein String-Literal ist eine Folge von Zeichen in doppelten Anführungszeichen. Die Zeichen sind entweder druckbare Unicode-Zeichen oder werden durch Escape-Sequenzen beschrieben. Hier sind einige String-Literale -
"Hello,\nWorld!"
"This string contains a \" character."
Mehrzeilige Saiten
Ein mehrzeiliges Zeichenfolgenliteral ist eine Folge von Zeichen, die in dreifachen Anführungszeichen "" ... "" "eingeschlossen sind. Die Zeichenfolge ist willkürlich, außer dass sie nur ganz am Ende drei oder mehr aufeinanderfolgende Anführungszeichen enthalten darf.
Zeichen müssen nicht unbedingt druckbar sein. Zeilenumbrüche oder andere Steuerzeichen sind ebenfalls zulässig. Hier ist ein mehrzeiliges String-Literal -
"""the present string
spans three
lines."""
Nullwerte
Der Nullwert ist vom Typ scala.Nullund ist somit mit jedem Referenztyp kompatibel. Es bezeichnet einen Referenzwert, der sich auf ein spezielles "Null" -Objekt bezieht.
Escape-Sequenzen
Die folgenden Escape-Sequenzen werden in Zeichen- und Zeichenfolgenliteralen erkannt.
Escape-Sequenzen | Unicode | Beschreibung |
---|---|---|
\ b | \ u0008 | Rücktaste BS |
\ t | \ u0009 | horizontale Lasche HT |
\ n | \ u000c | Formfeed FF |
\ f | \ u000c | Formfeed FF |
\ r | \ u000d | Wagenrücklauf CR |
"" | \ u0022 | doppeltes Anführungszeichen " |
\ ' | \ u0027 | einfaches Anführungszeichen. |
\\ | \ u005c | Backslash \ |
Ein Zeichen mit einem Unicode zwischen 0 und 255 kann auch durch ein Oktal-Escape dargestellt werden, dh durch einen Backslash '\', gefolgt von einer Folge von bis zu drei Oktalzeichen. Das folgende Beispiel zeigt einige Escape-Zeichen -
Beispiel
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
Ausgabe
Hello World