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