Advertisement
  1. Code
  2. Scala

Von Null bis zu Hallo Welt in Scala

Scroll to top
Read Time: 11 mins

German (Deutsch) translation by Tatsiana Bochkareva (you can also view the original English article)

Scala ist heute eine der attraktivsten Programmiersprachen. Es gibt viel Hype darum und Programmierer erkennen weltweit sie öffentlich als die mögliche nächste große Sache in der Programmierung an. Hier ist der Grund. Bei Scala dreht sich alles um funktionale Programmierung in einem objektorientierten Kontext. Es wird versucht, das Beste aus beiden Welten zu einer hocheffizienten, intelligenten und relativ leicht verständlichen Sprache zu kombinieren. Derzeit ist es führend in der heutigen Renaissance funktionaler Programmiersprachen.

Ich habe kürzlich den Scala-Kurs von Martin Odersky abgeschlossen und fand es sehr schwierig, herauszufinden, wie ich anfangen soll. Sie wissen, dieser erste Schritt, wenn Sie mit dem Codieren beginnen möchten, aber Sie wissen nicht, welche Tools Ihnen zur Verfügung stehen, welche IDE verwendet werden soll oder welches Unit-Test-Framework Sie auswählen sollen. In diesem Tutorial geht es um Sie, den Neuling bei Scala, und die Vorbereitung Ihrer Entwicklungsumgebung, damit Sie einfacher loslegen können.


Die Teile des Puzzles

Hier sind die Puzzleteile, über die wir in dieser Lektion sprechen werden. Sie können auch die Puzzleteile überspringen, die Sie bereits kennen:

  • Simple Build Tools (SBT) - Dies ist das Tool, das Projekte, Abhängigkeiten usw. für Scala generiert
  • NetBeans mit Scala-Plugins - So integrieren Sie Scala in NetBeans
  • Hallo Welt - wir erstellen unsere erste Scala-Quelldatei
  • Scalatest - das empfohlene Framework für Unit-Tests für Scala

Wir werden jedes Thema auf der Liste nehmen und es auf Anfängerebene diskutieren und schließlich werden wir sehen, wie all diese Teile zusammenarbeiten.


Software Anforderungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie das neueste Java SDK auf Ihrem Computer installiert haben. Da Scala auf der Java Virtual Machine (JVM) ausgeführt wird, ist das SDK erforderlich. Für den Rest der Themen auf unserer Liste ist möglicherweise direkt oder indirekt das Java SDK erforderlich.

Sie müssen Scala nicht selbst installiert haben. Wir werden im nächsten Kapitel darüber sprechen.


Scalas Simple Build Tools (SBT)

Wenn Sie ein PHP-Entwickler sind, sind Sie wahrscheinlich mit Composer vertraut. Wenn Sie ein Ruby-Guru sind, kennen und lieben Sie Bundler. Wenn Sie in einer anderen Sprache programmieren, gibt es sicher auch dafür einen Paketmanager.

SBT ähnelt den oben genannten Paketmanagern, aber während Composer erfordert, dass Sie PHP auf die gleiche Weise vorinstallieren, wie Bundler Ruby benötigt, muss Scala nicht auf dem System installiert sein, bevor Sie SBT verwenden können. Tatsächlich kann die spezifische Scala-Version, die Sie für Ihr Projekt verwenden möchten, einfach als Abhängigkeit in SBT angegeben werden. Sie fragen sich vielleicht, wie das möglich ist. Wie ich bereits erwähnt habe, läuft Scala auf der JVM. Im Grunde ist es nur eine Java-Bibliothek. Die Pakete für Scala können auch einfache JAR-Dateien sein. SBT selbst ist also nur ein Java-Programm. Sie brauchen nur Java, das Sie wahrscheinlich sowieso schon haben.

Es gibt viele verschiedene Möglichkeiten, wie Sie SBT installieren können. Aus plattformübergreifenden Gründen zwischen Linux, Mac und Windows besteht meine bevorzugte Methode zur Installation von SBT darin, das Archiv zu nehmen, es in ein Verzeichnis zu stellen, es in mein Ausgangsverzeichnis zu extrahieren und seinen Pfad zum System hinzuzufügen.

Eine plattformunabhängige Möglichkeit zur Installation von SBT

Laden Sie das neueste stabile SBT aus dem offiziellen Repository herunter. Suchen Sie am Ende nach einem Ordner ohne "Beta" oder "R" oder "M". Das wird die stabile Version sein. Zum Zeitpunkt des Schreibens dieses Tutorials ist die neueste stabile Version 0.12.3.

Das Archiv enthält ein sbt-Verzeichnis. Extrahieren Sie dies einfach in Ihren Lieblingsort. Ich bevorzuge es irgendwo in meinem Home-Verzeichnis wie /home/csaba/Programming/Scala/sbt

Fügen Sie als Nächstes den Pfad zu Ihrem SBT-Bin-Verzeichnis zu Ihrer PATH-Variablen hinzu. Wenn Sie auf UNIX-ähnlichen Systemen Bash verwenden, fügen Sie Ihrer ~/.bash_profile- oder ~/.bashrc-Datei eine Zeile wie diese hinzu:

Die Variable $HOME verweist normalerweise auf Ihr Home-Verzeichnis. Sie können es in Ihren Konfigurationsdateien wiederverwenden. Windows-Benutzer haben hierfür möglicherweise eine andere Variable. Vergessen Sie nicht den exportbefehl in der zweiten Zeile, da sonst Ihre PATH-Variable nur in der Konfigurationsdatei verfügbar ist.

Testen Sie nun, ob Ihre SBT-Installation erfolgreich war. Öffnen Sie eine Konsole oder ein Befehlszeilentool und geben Sie Folgendes ein:

Das $-Zeichen ist die Bash-Eingabeaufforderung, der Rest ist der Befehl, den Sie eingeben. Wie Sie sehen können, habe ich Version 0.12.2 installiert.

Weitere Möglichkeiten zur Installation von SBT finden Sie in der offiziellen Setup-Dokumentation.

Neues Projekt erstellen

Erstellen Sie einen Ordner, in dem sich Ihr zukünftiger Code befinden soll, öffnen Sie eine Konsole, wechseln Sie in das neu erstellte Verzeichnis und führen Sie einfach den Befehl sbt aus.

Beachten Sie, dass das aktuelle Projekt auf den Ordner festgelegt wurde, in dem Sie sich befinden, und dass sich Ihre Konsole geändert hat. Sie befinden sich jetzt in der SBT-Konsole. Sie können diese Konsole verlassen, indem Sie STRG + d oder STRG + c drücken oder den Befehl exit eingeben.

In dieser Konsole können Sie SBT anweisen, viele Dinge zu tun. Drücken Sie einfach zweimal die Tabulatortaste und bestätigen Sie mit y, um die vollständige Liste der verfügbaren Befehle anzuzeigen.

Projektbasierte Build-Konfiguration

Die Verwendung der systemweiten oder benutzerweiten Einstellungen für alle Ihre Projekte ist möglicherweise nicht die beste Option. Jedes Projekt ist anders, es benötigt unterschiedliche Abhängigkeiten, hat einen anderen Namen und so weiter. Um SBT über solche Informationen zu informieren, müssen wir eine Datei namens build.sbt erstellen. Es muss im Stammordner des Projekts abgelegt werden, den Sie im vorherigen Beispiel in der letzten Zeile finden.

Die in diesen Dateien verwendete Sprache ist ein DSL, das der Syntax von Scala ähnelt, jedoch viel weniger komplex ist. Um es einfach zu halten, definieren Sie normalerweise nur einige Werte wie den Namen und die Version Ihres Projekts oder Abhängigkeiten, z. B. welche Scala- oder SBT-Versionen verwendet werden sollen. Die Namen dieser Werte werden als "keys" bezeichnet. Wir werden mit nur wenigen von ihnen arbeiten. Auf der Seite Keys.scala finden Sie eine vollständige Liste der Schlüssel.

Für unser Projekt geben wir nur vier Schlüssel an. Ihre Namen machen sie ziemlich selbsterklärend:

Seien Sie sehr vorsichtig mit leeren Zeilen in der Konfigurationsdatei. Jede Schlüsselwertdefinition muss durch eine leere Zeile getrennt werden. Führen Sie nun sbt update im Verzeichnis Ihres Projekts aus.

Wie Sie sehen, wurde Scala 2.10.1 automatisch ausgewählt und bei Bedarf heruntergeladen. Wir haben SBT auch on-the-fly auf 0.12.3 aktualisiert. Schließlich werden Sie feststellen, dass unser Projekt beim Laden beim Namen genannt wird: "Aktuelles Projekt auf Hellow World setzen".

Verzeichnisstrukturkonventionen in SBT

Obwohl Sie einfach alle Ihre Quelldateien im Stammverzeichnis des Projekts ablegen können, empfiehlt und verwendet SBT gemäß Konvention eine Verzeichnisstruktur, die Maven ähnelt. Aktualisieren wir unsere Verzeichnisse so, dass sie wie im folgenden Baum aussehen. Sie sollten nur das src-Verzeichnis und seine untergeordneten Elemente erstellen. Der Rest wurde generiert, als wir mit den SBT-Befehlen spielten. Wenn nicht, keine Sorge, Sie interessieren sich nur für das Verzeichnis src.


Integration von Scala, SBT und NetBeans

Nachdem wir die Grundlagen von SBT gelernt haben, benötigen wir eine IDE, um unseren Code zu schreiben. Wenn Sie einfache Editoren, wie Sublime Text, bevorzugen, können Sie dies tun und diesen Schritt überspringen.

NetBeans hat Scala lange vor SBT unterstützt. Es gibt ein Plugin namens "nbscala", das Scala-Projekte für NetBeans erstellen und die auf dem System installierte Scala-Sprache verwenden kann. Derzeit wird dieses Plugin auf SBT umgestellt und kann möglicherweise SBT-Projekte erstellen und verwalten.

Derzeit lassen sich SBT und NetBeans recht gut integrieren. Das einzige, was Sie zum Zeitpunkt des Schreibens dieses Artikels manuell erstellen müssen, ist das erste SBT-Projekt. Danach kann sich NetBeans gut integrieren.

Scala-Unterstützung in NetBeans installieren

Öffnen Sie NetBeans, gehen Sie zu Tools/Plugins, wählen Sie die Registerkarte Verfügbare Plugins und scrollen Sie nach unten zum Buchstaben S. Überprüfen Sie alle Plugins für Scala, klicken Sie auf Installieren und lassen Sie die Plugins mit allen erforderlichen Abhängigkeiten installieren.

Netbeans Scala PluginNetbeans Scala PluginNetbeans Scala Plugin

Wenn Sie neugierig sind, wie dieses Plugin geschrieben ist, können Sie das Github-Repository überprüfen.

Installieren der NetBeans-Unterstützung in SBT

Ja, Sie haben es richtig gelesen, SBT hat ein eigenes Plugin-System, das NetBeans-Projekte für Sie generieren kann. Sie müssen nur ein Git-Repository auschecken und lokal veröffentlichen. Wechseln Sie in ein Verzeichnis, in dem Ihr Plugin ausgecheckt und installiert werden soll, und führen Sie die folgenden Befehle aus:

Ok, wir sind fast fertig. Wir haben das Plugin, jetzt müssen wir SBT anweisen, es zu verwenden. Sie können dies pro Projekt tun, wenn Sie möchten, aber ich empfehle, dass Sie es zu den SBT-Einstellungen Ihres Benutzers hinzufügen: ~/.sbt/plugins/plugins.sbt

Das ~ bezieht sich auf Ihr Home-Verzeichnis. Sie sollten bereits ein Verzeichnis mit dem Namen .sbt darin haben (beachten Sie den Punkt als erstes Zeichen). Möglicherweise haben Sie ein plugins-Verzeichnis oder nicht. Wenn Sie dies nicht tun, erstellen Sie es einfach und erstellen Sie dann die Datei plugins.sbt. Fügen Sie nun Folgendes hinzu:

Jetzt kann Ihr SBT NetBeans-Projekte für Sie generieren, wenn Sie den Befehl netbeans in der SBT-Konsole ausführen. Alternativ können Sie in NetBeans einfach jedes SBT-Projekt öffnen (kein neues Projekt, sondern öffnen), und es generiert automatisch das NetBeans-Material für Sie.

NetBeans Open SBT ProjectNetBeans Open SBT ProjectNetBeans Open SBT Project

Anschließend werden alle Projektabhängigkeiten aktualisiert und der Befehl netbeans in einer SBT-Konsole innerhalb von NetBeans ausgeführt.

NetBeans SBT ConsoleNetBeans SBT ConsoleNetBeans SBT Console

Abhängig von den zu installierenden Abhängigkeiten wird möglicherweise mehr Text auf dem Bildschirm angezeigt, und Sie sollten sehen können, dass der Befehl netbeans automatisch für uns ausgeführt wurde.

Im linken Bereich auf der Registerkarte des Projektbrowsers können Sie sogar grundlegende SBT-Befehle ausführen, indem Sie einfach mit der rechten Maustaste auf das Projekt klicken und Reload, Clean, Compile usw. ausführen.


Hallo Welt in Scala

Das ist kein Tutorial zum Erlernen von Scala. Wir werden nur einen sehr einfachen Code schreiben, eine klassische Hello World. Sie können also Ihr Scala-Projekt erweitern und im Eintrag "Scala-Pakete" mit der rechten Maustaste auf <default package> klicken und Neu -> Scala-Objekt auswählen. Geben Sie ihm einen Namen, so etwas wie "HelloWorld" reicht völlig aus. Geben Sie dann den folgenden Code ein:

Wenn Sie mit Scala nicht vertraut sind, wird automatisch ein Objekt ausgeführt und eine Methode namens main wird nachgeschlagen. Die Definition der Methode ist nur eine einfache Druckzeile von Hello World.

Gehen Sie für dieses Projekt zu Ihrer SBT-Konsole. Wenn Sie es versehentlich geschlossen haben, klicken Sie einfach mit der rechten Maustaste auf das Scala-Projekt im linken Bereich und wählen Sie Open sbt console. Geben Sie nun run in die Konsole ein, um das Programm auszuführen.

Code and Run ResultsCode and Run ResultsCode and Run Results

Tests hinzufügen

Der erste Schritt besteht darin, Scalatest so zu installieren, dass wir ein Testframework haben. Der einfachste Weg, dies zu tun, besteht darin, unsere Datei build.sbt zu bearbeiten und die folgende Zeile hinzuzufügen. Denken Sie daran, dass Sie zwischen jeder Zeile eine leere Zeile lassen müssen.

Jetzt können Sie in Ihrer SBT-Konsole ein Update (optional) ausgeben und den testbefehl ausführen. Wir haben noch keine Tests, daher sollte der Befehl nicht fehlschlagen.

Test EmptyTest EmptyTest Empty

Das Erstellen unseres ersten Tests wird ganz einfach sein. Das einzige, was Sie wissen müssen, ist, dass es sich im Ordner src/test/scala befinden muss. Wenn Sie Scala-Testpakete in Ihrem Projekt-Viewer erweitern und mit der rechten Maustaste auf <default packeage> klicken, können Sie Neu -> Scala-Klasse auswählen und eines mit dem Namen "ExampleSuite" erstellen und den folgenden Code hinzufügen:

Bitte beachten Sie, dass NetBeans möglicherweise einige Probleme beim Ausführen Ihrer Tests hat, da das Scala-Plugin noch nicht vollständig ist. Aber keine Panik, Sie können die Tests immer noch über die SBT-Konsole ausführen.

Der Test importiert nur die Scalatest-Testsuite FunSuite (wobei "Fun" von der Funktion stammt) und führt zwei Tests aus. Wie Sie vielleicht aus dem Code herausfinden, wird der erste bestanden, der zweite wird fehlschlagen.

Tests In ActionTests In ActionTests In Action

Wenn SBT sich aus irgendeinem Grund weigert, Ihre Tests zu kompilieren, schließen Sie einfach die Konsole in NetBeans, klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Reload sbt Project. Dadurch wird das Problem behoben und Ihre Tests werden wie erwartet ausgeführt.


Abschließende Gedanken

Los geht's! Sie haben gerade Ihre ersten Schritte zum Erlernen von Scala abgeschlossen. Ich hoffe, dieses Tutorial hat Ihnen geholfen, besser zu verstehen, wie Sie anfangen sollen. Wenn Sie anstelle von Netbeans, meiner bevorzugten IDE, auch eine Google-Suche durchführen können, um eine ziemlich vollständige Online-Dokumentation zur Verwendung von SBT & Scala mit Eclipse zu finden, wenn Sie dies bevorzugen.

Danke fürs Lesen.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.