Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Scala Grundkurs

Variablen und Konstanten

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Um Daten zwischenzuspeichern, stehen Ihnen in Scala Variablen (var) und Konstanten (val) zur Verfügung. In diesem Film lernen Sie deren korrekte Anwendung in einem Scala-Programm kennen.

Transkript

Bei der Programmierung benötigt man selbstverständlich Möglichkeiten, Daten zu speichern, im Normalfall also in Form von Variablen. In der Programmiersprache Scala gibt es dafür zwei verschiedene Arten: Zum einen var für Variablen und val für Konstanten. Und ich zeige Ihnen nun, wie diese jeweils einzusetzen sind. Dafür beginne ich nun also zunächst einmal in meiner Entwicklungsumgebung innerhalb einer Anwendung mit einer Main-Methode. Als Allererstes definiere ich nun eine Variable. Dafür verwende ich das Keyword var. Meine Variable nenne ich nun beispielsweise "variable" und weise ihr einen var zu, wie die Zahl 2. Um zu zeigen, dass es sich hier nun auch um eine Variable handelt, verwende ich die Möglichkeiten, um diese Variable zu verändern, beispielsweise indem ich die Zahl 3 auf die Zahl 2 addiere. In der Variable sollte nun also 5 stehen. Mit einem relativ einfachen "println" und dem Variablenbezeichner kann ich das Ganze auch auf der Commando-Zeile nachvollziehen. Das Gegenstück zu Variablen bei Scala sind Konstanten. Dafür verwendet man statt var-Keyword val für Value, nennt das Ganze dann beispielsweise auch hier "konstante" und weist die Zahl 2 zu. Als Nächstes könnte ich nun versuchen, dieser Konstante auch eine Zahl 3 hinzuzufügen. Allerdings weist mich nun meine IDE bereits darauf hin dass es sich hierbei um einen Reassignment handelt, dass also eine Konstante mit einem neuen Wert erweitert werden soll. Auch der Scala-Compiler wird dies nicht zulassen. Daher kommentiere ich nun diese Zeile aus. Kommentare sind in Scala im Übrigen ähnlich wie in Java zu verwenden mit zwei Slashes. Eine Variable, wie hier die Variable mit der Bezeichnung "variable" hat natürlich auch nun einen fixen Typ. Das bedeutet, ich kann einer Variable später keinen Text mehr zuweisen, wie beispielsweise "Text" als String. Das bedeutet, von Anfang an ist mit Erzeugung der Variable dessen Typ festgelegt. Was nun bei beiden Bezeichnern auffällig ist, dass ich keinen Typ explizit angegeben habe. Das bedeutet, obwohl Variable ein Integer ist, habe ich nicht angegeben, dass es sich hierbei um einen Integer handelt ähnlich bei der Konstante. Der Scala-Compiler ist in der Lage, diese Information automatisch aus den Programmstatements herauszulesen. Unter Umständen könnte ich allerdings wünschen, dass ich diesen Typ explizit definiere. Beispielsweise könnte ich eine Konstante "Text" erstellen, die vom Typ "string" ist. Wenn ich also den Typ explizit angeben möchte, tue ich dies mit einem Doppelpunkt. Das Gleiche kann ich selbstverständlich auch mit einer Variable tun. Ob man konsequent den Typ hinschreiben möchte oder nicht, ist eher eine Stilfrage. In bestimmten Kontexten, wie beispielsweise in einer Klassendefinition und deren öffentlichen Methoden sollte ein Typ angegeben sein. Schließlich handelt es sich dabei um die Definition, wie die Klasse von außen wahrgenommen wird. Scala kennt allerdings noch ein besonderes Konstrukt. Hierfür erzeuge ich also zunächst einmal eine Variable mit der Bezeichnung "preis" und dem Wert 2. Als Nächstes definiere ich ein sogenanntes "lazy val", also eine lazy-Konstante. Dieser gebe ich nun den Namen "lazyBeispiel" und den Wert von "preis." Als Nächstes erhöhe ich nun den Preis um die Zahl 3 und gebe daraufhin das "lazyBeispiel" auf die Konsole aus. Wenn ich die Anwendung nun ausführe, bekomme ich den Wert 5 für diesen Println Befehl. Das ist insofern ungewöhnlich, als dass von Programmfluss her der Wert von Preis 2 ist und dem "lazyBeispiel" schon vor der Erhöhung um 3 zugewiesen wird. Da es sich dabei aber um ein sogenanntes "lazy val" handelt, wird es erst ausgewertet, sobald es benutzt wird. Das bedeutet in dem Fall vom "lazyBeispiel", dass beim "println" von "lazyBeispiel" erst die Zuweisung von Preis stattfindet, in dem Fall also dann die Zahl, die bereits auf 5 erhöht wurde. Weiterhin kennt Scala viele Keywords, die zur Programmiersprache selbst gehören, wie beispielsweise das Keyword "type". Dieses könnte ich also nun nicht als Variablenbezeichner benutzen. Allerdings ist es in Scala möglich, besondere Variablenbezeichner zu definieren. Beispielsweise bei der Definition von val kann ich mit sogenannten Backticks einen Text als Variablenbezeichner verwenden, also in meinem Fall nun "type", und dem weise ich einen String zu mit dem Inhalt "type". Diesen benutze ich nun auch ähnlich, wie ich ihn definiert habe. Das bedeutet nun, dass ich innerhalb meines Printlns Backticks verwende, um auf die Variable beziehungsweise die Konstante, in diesem Fall "type", zu referenzieren. Der Inhalt der Backticks ist auch beliebig. Das bedeutet, ich kann auch beispielsweise einen Satz dort hineinschreiben, wie den Satz "seit neuestem haben Werte auch Leerzeichen". Und genauso, wie ich ihn definiert habe, kann ich auch dann darauf referenzieren und das Ganze innerhalb meines Programmflusses verwenden. Ich habe Ihnen nun also die Besonderheiten von Variablen und Konstanten gezeigt, die sich mit den Keywords var und val definieren. Besonders auffällig war dabei, dass eine Typendefinition nicht unbedingt notwendig ist, sondern implizit vom Compiler erschlossen werden kann. Im Programmiereralltag kann das enorme Zeit sparen. Doch sollte man Wert auf Typisierung legen, die explizit erkennbar ist, ist auch eine explizite Definition anhand der Variable möglich. Die Hauptcharakteristik einer solchen Variable war letztendlich, dass diese veränderlich ist nach der ersten Zuweisung, trotzdem allerdings ihrem ersten Typ immer treu bleibt, so dass also beispielsweise ein Integer immer ein Integer bleiben wird. Bei val handelt es sich nun also um eine Konstante. Eine solche Konstante lässt sich üblicherweise für 99 % der Fälle, wo man eine Variable verwenden würde, anwenden. In Scala gehört es daher auch zu gutem Stil, immer zuerst mit Konstanten zu arbeiten, bevor man falls nötig daraus eine Variable macht. Vergleichbar sind Konstanten mit dem sogenannten Final Keyword in Java. Bedingt dadurch, dass das Definieren einer Konstante in Java mit diesem relativ langen Keyword einhergeht, wird es in der Praxis nicht allzu oft genutzt, wenn auch die Nutzung von Konstanten eine deutlich erhöhte Sicherheit bei der Benutzung innerhalb des Codes zur Verfügung stellt. Im Zusammenhang mit Konstanten habe ich Ihnen dann noch das "lazy val" gezeigt, dass eine Evaluation erst bei einem Zugriff stattfindet. Das bedeutet, der Inhalt dieser Konstante ist erst dann definiert, wenn sie tatsächlich benutzt wird. Gerade bei Konstanten, die teuer in der Berechnung sind, macht es durchaus Sinn, diese erst dann zu berechnen, wenn Sie tatsächlich benötigt werden. Scala kennt allerdings noch einige Besonderheiten in dem Zusammenhang mit val und var, hier vor allem die Variablenbezeichner, denn in Form von Texten können Variablen und Konstanten auch benannt werden. Neben den demonstrierten Beispielen mit Leerzeichen und Keywords aus der Scala-Programmiersprache ist es auch möglich, Sonderzeichen zu verwenden. Dazu gehören auch beispielsweise chinesische Zeichen oder jede andere Form von Uncode-Zeichen.

Scala Grundkurs

Entdecken Sie die Möglichkeiten und Eigenschaften der modernen Programmiersprache Scala.

4 Std. 44 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:12.04.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!