Literale

Numerische Literale

Fangen wir gleich mit ein paar Beispielen an:

3              // Ein Integer mit 32 Bit
//res0: Int = 3
3.1            // Ein Double mit 64 Bit
//res1: Double = 3.1
3f             // Ein Float mit 32 Bit
//res2: Float = 3.0
3L             // Ein Long mit 64 Bit
//res3: Long = 3
010            // Ein Integer mit 32 Bit in der Oktalschreibweise
//res4: Int = 8
0xFF           // Ein Integer mit 32 Bit in der Hexadecimalschreibweise
//res5: Int = 255
3.1E-5         // Ein Double mit 64 Bit in der wissenschaftlicher Schreibweise
//res6: Double = 3.1E-5

Numerische Typen

In Scala ist alles ein Objekt. Scala kennt die folgenden numerischen Typen.

Name BitsType Wertebereich
Boolean 1Boolean true oder false
Byte 8Integer -128 bis 127 inklusive
Short 16Integer -32.768 to 32.767 inklusive
Int 32Integer -2.147.483.648 to 2.147.483.647 inklusive
Long 64Integer -2^63 to 2^63-1, inklusive
Float 32Float IEEE 754 single-precision float
Double 64Float IEEE 754 double-precision float

String Literale

Nach den doch recht theoretischen Zahlen schauen wir uns mal die Strings an:

"Hallo Welt!"  // Ein Unicode String
// res0: java.lang.String = Hallo Welt!
'C'            // Ein 16 Bit Charakter 
// res1: Char = C
"""Ich bin ein multiline
     | String!"""
//res2: java.lang.String = 
//Ich bin ein multiline
//       String!

Es gibt in Scala also Multiline Strings. Das Ergebnis dürfte aber nicht das sein was man davon erwartet. Die gute Nachricht ist, dass es auch eine Möglichkeit gibt Multiline Strings 'schön' zu machen:

"""|Weiterer multiline
|String!""".stripMargin
//res3: String = 
//Weiterer multiline
//String!

Mit den Pipezeichen('|') gibt man an wo der String anfangen soll. Das stringMargin schiebt den String dann an die richtige Stelle.

Weiter