Variablen
Computerprogramme werden interessant, wenn sie nicht nur Text ausgeben, sondern auch Daten verarbeiten können. Dazu werden Daten meist aus einer externen Quelle eingelesen (z.B. Datenbank oder Netzwerkverbindung), intern gespeichert, verarbeitet und ausgegeben. Zum Speichern von Inhalten werden sogenannte Variablen benutzt und Inhalte zu Namen zugeordnet.
In der Funktion main
wird nun zuerst die
Variable mit dem Namen gruß
deklariert und dem Compiler mitgeteilt, dass
unter diesem Namen nur Zeichenketten (strings) gespeichert werden dürfen. In
der zweiten Zeile weisen wir den Wert »Hallo Welt« diesem Namen zu und
geben sie in der dritten Zeile aus.
Hier kommt eine Eigenschaft von Go ins Spiel:
Typsicherheit. Wenn wir dem Namen »gruß
« etwas
anderes zuweisen, als eine Zeichenkette, wird der Compiler eine Fehlermeldung
ausgeben und das Programm nicht übersetzen. Bei folgendem Programmtext
(Ausschnitt aus dem Programm von oben)
var gruß string
// Fehler!
gruß = 1234
beschwert sich Compiler und gibt diese Fehlermeldung aus:
./hallo.go: cannot use 1234 (type int) as type string in assignment
Das besagt, dass die Zahl 1234, die eine Ganzzahl (int) ist, nicht als Typ Zeichenkette in der Zuweisung benutzt werden kann. Den Fehler muss man beheben, bevor das Programm ausgeführt werden kann.
Go kennt keine Warnungen, nur Fehlermeldungen. Wird beispielsweise eine Variable deklariert, aber nicht benutzt, kompiliert Go das Programm nicht. Viele Anfänger fluchen über diese Eigenheit, denn es macht es schwieriger mal eben nach einer kleinen Änderung das Programm zu übersetzen und auszuprobieren. Sei aber sicher: nach kurzer Eingewöhnungszeit wirst du die Vorteile zu schätzen wissen. |
Nun ist es aber umständlich erst einmal zu deklarieren, um welchen Typ es sich
bei einer Zuweisung handelt, wenn der Typ eindeutig ist. D.h. wenn es klar
ist, dass ich unter dem Namen gruß
eine Zeichenkette speichern will, warum
sollte ich das dann erst einmal dem Compiler (=Go) mitteilen? Und hier kommt
einer der vielen wunderbaren Dinge ins Spiel, die Go so attraktiv machen im
Vergleich zu vielen anderen Programmiersprachen. Obiges Programm würde man
eher so schreiben:
Die Kombination :=
ist eine sogenannte short variable declaration und ist die Kurzform für
var gruß = "Hallo Welt"
einer Variablendeklaration mit Initialisierer (einem konkreten Wert). Go kann aus dem Wert auf der rechten Seite der Variablen erkennen, welche Typen unter diesem Namen gespeichert werden dürfen. Damit erspart man sich die Angabe des Typs (string).
Da nun die grundlegenden Bausteine von Go beschrieben wurden, können wir uns den Details zuwenden. Den größeren Themen ist ein eigenes Kapitel gewidmet.