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.
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.
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.