Go programmieren für Dummies. Wei-Meng Lee

Читать онлайн книгу.

Go programmieren für Dummies - Wei-Meng Lee


Скачать книгу

      Nachdem Sie ein Programm gespeichert haben, müssen Sie es kompilieren. Erst dann kann es ausgeführt werden.

      Wechseln Sie nun zum Verzeichnis Kapitel 1. Unter macOS geben Sie dazu folgenden Befehl ein:

       $ cd ~/"Kapitel 1"

      Und unter Windows geben Sie diesen Befehl ein:

       $ cd "C:\users\IhrName\Kapitel 1"

      Jetzt können Sie die Datei main.go mit folgendem Befehl kompilieren:

       $ go build main.go

      Beim Kompilieren wird aus dem Programmcode der Datei main.go eine ausführbare Datei erzeugt und automatisch im Ordner Kapitel 1 gespeichert. Um diese Datei namens main unter macOS auszuführen, geben Sie folgenden Befehl ein:

       $ ./main Hallo Welt!

      Wird die Zeichenkette Hallo Welt! ausgegeben? Dann herzlichen Glückwunsch! Sie haben erfolgreich Ihr erstes Programm mit Go geschrieben.

      Unter Windows erzeugt der build-Befehl aus Ihrem Code eine ausführbare Anwendung namens main.exe. Um sie auszuführen, geben Sie folgenden Befehl ein:

       C:\users\IhrName\Kapitel 1>main.exe Hallo Welt!

       $ go run main.go

      Funktionsweise eines Go-Programms

      Ihr erstes Go-Programm hat hoffentlich funktioniert. Aber wie eigentlich? Schauen wir uns den Code einmal Zeile für Zeile an. Die erste Zeile legt den Namen des Pakets (package) für dieses Programm fest:

       package main

      Go-Programme werden in Paketen organisiert. Ein Paket ist eine Sammlung aus Quelldateien, die sich alle im selben Verzeichnis befinden. In diesem Beispiel verweist main auf das Paket, das Sie im Verzeichnis Kapitel 1 gespeichert haben. Wenn Sie weitere Quelldateien (.go-Dateien) hinzufügen, werden sie alle diesem main-Paket zugeordnet (mehr dazu in späteren Kapiteln).

      

Pakete müssen nicht zwingend den Namen main erhalten. Bei der Namenswahl sind Ihnen fast keine Grenzen gesetzt. Allerdings hat der Paketname main eine besondere Bedeutung: Alle Pakete mit diesem Namen enthalten eine Funktion namens main(), die als Einstiegspunkt für Ihr Programm dient. Auch der Dateiname muss nicht unbedingt mit dem Namen des enthaltenen Pakets übereinstimmen. Ich hätte meine Datei statt main.go auch hund.go nennen können – das Programm hätte trotzdem funktioniert (nur mit dem Unterschied, dass auch die ausführbare Anwendung automatisch den Namen hund statt main erhalten hätte).

      Die nächste Codezeile importiert ein Paket namens fmt:

       import "fmt"

      Dieses Paket umfasst diverse Funktionen, mit denen Sie Ausgaben formatieren und an die Konsole senden können, sowie Funktionen zum Erfassen von Benutzereingaben.

      

Falls Ihnen einige Begriffe aus dem Programmierjargon noch nicht geläufig sind: Eine Funktion ist ein Block aus Codezeilen, die eine bestimmte Aufgabe erfüllen. Weitere Details zu Go-Funktionen bietet Kapitel 5.

      Der nächste Codeblock stellt den Einstiegspunkt Ihres Programms dar:

       func main() { }

      Da der Paketname main lautet, wird Ihr Programm bei der Ausführung zuerst diese main()-Funktion durchlaufen.

       fmt.Println("Hallo Welt!")

      Go-Dateistrukturen

      Sie wissen nun, wie ein einfaches Go-Programm funktioniert. Aber wie werden die einzelnen Go-Dateien gruppiert und organisiert? Wie im vorigen Abschnitt erwähnt, gehören alle Dateien innerhalb desselben Verzeichnisses auch zum selben Paket. Zur Veranschaulichung fügen wir deshalb jetzt dem Verzeichnis Kapitel 1 eine neue Datei hinzu, der wir den Namen show_time.go geben. (Wie Sie eine neue Datei erstellen und speichern, wurde im Abschnitt Ihr erstes Go-Programm erklärt.) Im Verzeichnis Kapitel 1 befinden sich nun also folgende Dateien:

       Kapitel 1 |__main.go |__show_time.go

      Tragen Sie folgende Codezeilen in die Datei show_time.go ein:

       package main import ( "fmt" "time" ) func displayTime() { fmt.Println(time.Now()) }

      Wie Sie anhand der ersten Zeile sehen, gehört diese Datei zum Paket main. Wenn Sie mehr als ein Paket importieren möchten, müssen die Paketnamen von Klammern umschlossen sein. In diesem Beispiel werden die Pakete time und fmt importiert. Danach folgt eine Funktion namens displayTime(), die mithilfe der Funktion Now() des time-Pakets die aktuelle Uhrzeit inklusive Datum ausgibt.

      Da die displayTime()-Funktion zum main-Paket gehört, kann sie auch in main.go aufgerufen werden:

       package main

       import "fmt"

       func main() {

       fmt.Println("Hallo Welt!")

       displayTime()

       }

      

Funktionen, die im selben Paket definiert sind, können aufgerufen werden, ohne dass Sie das Paket explizit importieren müssen.

      Da nun zwei Dateien zum Paket main gehören, müssen Sie beim Kompilieren keinen Dateinamen mehr angeben. Stattdessen führen Sie den Befehl build innerhalb des Verzeichnisses


Скачать книгу