Programmieren in Go
- Erster Einstieg Google Go
- Programmieren in Go
Hilfe, Programmieren, Kompilieren...
Hilfe, Programmieren, Kompilieren

Informieren Sie sich zunächst über die beim Programmieren in Go zu beachtenden Besonderheiten. Dafür finden Sie auf der Heft-DVD die Go-Dokumentation als PDF. Diese Datei fasst die beiden HTML-Dateien go_tutorial und effective_go in leichter lesbare Form zusammen.
Die beiden verwendeten Dateien und weitere Informationsdateien oder Hilfedateien finden Sie als HTML-Dateien im entpackten Ordner \doc. Besonders hilfreich sind außer den in der Dokumentation zusammengefassten Dateien die drei Tageskurse in den Dateien GoCourseDay1.pdf bis GoCourseDay3.pdf von Rob Pike mit den Detailbeschreibungen der Go-Programmiersprache.
Nach der Einarbeitung schreiben Sie Ihr erstes Programm mit dem Texteditor oder Sie öffnen darin eines, das das Installationspaket entpackt hat. Sie finden viele Beispielprogramme in Unterordnern zum Ordner \doc. Was Sie noch brauchen, finden Sie als Windows-Zubehör wie den Texteditor WordPad.
Der gleichfalls zum Windows-Zubehör gehörende einfache Editor eignet sich weniger gut. Er erkennt ein einfaches Lf (Chr(10)) nicht als Zeilentrenner, sondern erwartet CrLf (Chr(13) + Chr(10)). Da die Codebeispiele im entpackten Go-Ordner ..\docs\progs leider nur mit einfachem Lf als Zeilentrenner gespeichert sind, müssten Sie die Zeilenumbrüche umständlich selbst einfügen.
Außerdem erlaubt der Editor kein Speichern von UTF8-Unicode, wie Sie ihn für unser kleines Beispiel zur Darstellung der Griechischen Schriftzeichen brauchen. Das HalloWelt-Beispiel gestaltet sich dann denkbar einfach:
package main
import fmt "fmt" //Package implementing
formatted I/O.
func main() {
fmt.Printf("Hallo, Welt; \n") }
Haben Sie Erfahrungen in einer C-Sprache, sollte Ihnen dieser Code keine großen Probleme bereiten. Dazu sind dennoch ein paar Erläuterungen erforderlich. Die erste Zeile verweist auf das Package, zu dem der Code gehört. Das Programm importiert in der zweiten Zeile das fmt-Package, das die in der vierten Zeile stehende Anweisung fmt.Printf zur Ausgabe des Textes enthält.
Beachten Sie, dass diese Zeile zwar zwischen den Textteilen jeweils ein Semikolon enthält, aber entgegen den Regeln der C++-Programmierung nicht mit einem Semikolon endet. Das war und ist ein erklärtes Ziel der Entwickler von Go: Es sollen so wenig wie möglich Semikolons im Code stehen.
Das hat andererseits einen Nachteil, der sich in der dritten Zeile zeigt: Die öffnende geschweifte Klammer darf niemals allein in einer Zeile, sondern muss immer am Ende der Anweisungszeile - hier If - stehen. Die Klammer darf also nicht zur besseren optischen Strukturierung in die nächste Zeile verschoben werden.
Jede Quelldatei enthält eine package-Klausel, die angibt, in welchem Package der Code steht, im Beispiel: package main. Optional binden Sie mit imports "Name" eines oder mehrere Pakete ein, auf deren Funktionalität qualifizierte Identifizieren zugreifen wie etwa fmt.Printf.
Die Go-Programmiersprache ähnelt also C++. Beachten Sie aber einige Abweichungen wie die reduzierte Verwendung des Semikolon. Es gibt in Go zwar Pointer, aber keine Pointer-Arithmetic. Strings sind längenbegrenzt und werden nicht durch Chr(0) abgegrenzt. Bei Deklarationen ist die Reihenfolge der Elemente umgekehrt, wie folgende Beispiele zeigen.
var i int
const PI = 22./7.
type Point struct { x, y int }
func sum(a, b int) int { return a + b }
Damit aus dem Code ein ausführbares Programm wird, muss er mit dem Compiler 8g kompiliert und mit 8l zu einem out-File verlinkt werden. Dazu gehen Sie in das Eingabefenster und setzen einen Befehl wie 8g helloworld.go ab. Damit kompilieren Sie die Datei helloworld.out. Der Aufruf dieses Programms erzeugt dann den gewünschten String Hallo, Welt.
Go wird immer besser

Die Quelldateien zum Compiler und den anderen Go-System-Programmen stehen in \src mitsamt Unterordnern. Programmierer sind, da Go unter Open Source veröffentlicht ist, zu Verbesserungen aufgefordert. Beachten Sie nur die Lizenzbedingungen. Im Augenblick wird Go noch in schneller Folge entwickelt.
Mittlerweile gibt es Bibliotheken für Anforderungen wie etwa für grafische Darstellungen nach SVG (Scalable Vector Graphics 1.1 Specification). Es ist zu erwarten, dass die Entwicklung weitergeht. Als Maskottchen dient Go Gordon the gopher. Im Amerikanischen bezeichnet Gopher ein Erdhörnchen. Es bleibt abzuwarten, ob Gordon einmal in höhere Regionen aufsteigt und ein respektables Eichhörnchen wird.