val und var

Nachdem wir jetzt wissen wie man Zahlen und Strings eingibt wollen wir doch mal sehen ob sich Scala auch Sachen merken kann.

Wie in anderen Sprachen auch gibt es in Scala Variablen. Es gibt sogar zwei Arten von 'Variablen'. Die einen sind variabel ;-) Die anderen nicht.

var radius = 3
//radius: Int = 3
val PI = 3.141592653589793
//PI: Double = 3.141592653589793
radius=4
//radius: Int = 4
PI=3.14
//<console>:5: error: reassignment to val
//       PI=3.14

Mit var legt man Variablen an und mit val legt man Konstanten1) an. Die Objekte hinter diesen Konstanten sind weiterhin veränderlich.

Typsystem von Scala

Scala ist ein statisch typisierte Sprache. Das heißt, wenn eine Variable einmal einen Typ hat kann man ihn nicht mehr ändern. Woher weiß Scala aber welchen Typen wir den wollen?

Schrecklich einfach. In den aller meisten Fällen2) ist es möglich den Typ einer Variable vom rechten Teil einer Zuweisung abzuleiten. Und genau dass macht Scala dann auch. Wenn man sich nochmal die letzten Beispiele anschaut hat Scala je nach Zahl entschieden ob der Werte Integer oder Double sein sollte.

Numerische Variablen

Eine Auflistung der Numerischen Typen hatten wir schon hier. Bemerkenswert ist, dass numerische Variablen und Literale Objekte sind. Operationen wie +, -, * und / sind Methoden der entsprechenden Klassen.

D.h.

1 + 2

kann auch als

(1).+(2)

geschrieben werden.

1) Für Java Entwickler entsprechen diese Konstanten final Variablen.
2) In den anderen Fällen muss man dann explizit angeben welchen Typ die Variable haben soll.