Site Overlay

Ihr erstes Programm

Traditionell wird das erste Programm, das Sie in einer Programmiersprache schreiben, als „Hello World“-Programm bezeichnet – ein Programm, das einfach Hello World auf Ihrem Terminal ausgibt. Lass uns eines mit Go schreiben.

Erstelle zunächst einen neuen Ordner, in dem wir unser Programm speichern können. Erstelle einen Ordner namens ~/src/golang-book/chapter2. (Wobei ~ dein Heimatverzeichnis bedeutet) Vom Terminal aus kannst du dies tun, indem du die folgenden Befehle eingibst:

mkdir src/golang-bookmkdir src/golang-book/chapter2

Geben Sie mit Ihrem Texteditor Folgendes ein:

package mainimport "fmt"// this is a commentfunc main() { fmt.Println("Hello World")}

Vergewissern Sie sich, dass Ihre Datei mit der hier gezeigten identisch ist, und speichern Sie sie unter dem Namen main.go in dem gerade erstellten Ordner. Öffnen Sie ein neues Terminal und geben Sie das Folgende ein:

cd src/golang-book/chapter2go run main.go

Sie sollten Hello World in Ihrem Terminal angezeigt bekommen. Der Befehl go run nimmt die nachfolgenden Dateien (durch Leerzeichen getrennt), kompiliert sie zu einer ausführbaren Datei, die in einem temporären Verzeichnis gespeichert wird, und führt das Programm dann aus. Wenn Sie Hello World nicht sehen, haben Sie sich bei der Eingabe des Programms möglicherweise vertippt. Der Go-Compiler wird Ihnen Hinweise geben, wo der Fehler liegt. Wie die meisten Compiler ist auch der Go-Compiler extrem pedantisch und hat keine Toleranz für Fehler.

Wie man ein Go-Programm liest

Schauen wir uns dieses Programm einmal genauer an. Go-Programme werden von oben nach unten, von links nach rechts gelesen. (wie ein Buch) In der ersten Zeile steht dies:

package main

Das nennt man eine „Paketdeklaration“. Jedes Go-Programm muss mit einer Paketdeklaration beginnen. Pakete sind Go’s Art, Code zu organisieren und wiederzuverwenden. Es gibt zwei Arten von Go-Programmen: ausführbare Anwendungen und Bibliotheken. Ausführbare Anwendungen sind die Art von Programmen, die wir direkt vom Terminal aus starten können. (In Windows enden sie mit .exe) Bibliotheken sind Codesammlungen, die wir zusammenpacken, damit wir sie in anderen Programmen verwenden können. Wir werden später noch genauer auf Bibliotheken eingehen, aber im Moment sollten Sie darauf achten, dass Sie diese Zeile in jedes Programm einfügen, das Sie schreiben.

Die nächste Zeile ist eine Leerzeile. Computer stellen Zeilenumbrüche mit einem speziellen Zeichen (oder mehreren Zeichen) dar. Zeilenumbrüche, Leerzeichen und Tabulatoren werden als Whitespace bezeichnet (weil man sie nicht sehen kann). Go kümmert sich meistens nicht um Leerzeichen, wir benutzen sie, um Programme leichter lesbar zu machen. (Sie könnten diese Zeile entfernen und das Programm würde sich genauso verhalten)

Dann sehen wir dies:

import "fmt"

Mit dem Schlüsselwort import binden wir Code aus anderen Paketen ein, den wir in unserem Programm verwenden. Das Paket fmt (Kurzform für Format) implementiert die Formatierung für Ein- und Ausgabe. Wenn man bedenkt, was wir gerade über Pakete gelernt haben, was glauben Sie, was die Dateien des Pakets fmt oben enthalten würden?

Beachten Sie, dass fmt oben von Anführungszeichen umgeben ist. Die Verwendung von doppelten Anführungszeichen wie dieser ist als „String-Literal“ bekannt, das eine Art von „Ausdruck“ ist. In Go stellen Strings eine Folge von Zeichen (Buchstaben, Zahlen, Symbole, …) mit einer bestimmten Länge dar. Strings werden im nächsten Kapitel ausführlicher beschrieben, aber für den Moment ist es wichtig zu wissen, dass auf ein einleitendes "-Zeichen ein weiteres "-Zeichen folgen muss und dass alles, was dazwischen liegt, zum String gehört. (Das "-Zeichen selbst ist nicht Teil der Zeichenkette)

Die Zeile, die mit // beginnt, wird als Kommentar bezeichnet. Kommentare werden vom Go-Compiler ignoriert und sind für Sie selbst da (oder für denjenigen, der den Quellcode Ihres Programms aufnimmt). Go unterstützt zwei verschiedene Arten von Kommentaren: //-Kommentare, bei denen der gesamte Text zwischen dem // und dem Ende der Zeile Teil des Kommentars ist, und /* */-Kommentare, bei denen alles zwischen den *s Teil des Kommentars ist. (Und kann mehrere Zeilen umfassen)

Danach sieht man eine Funktionsdeklaration:

func main() { fmt.Println("Hello World")}

Funktionen sind die Bausteine eines Go-Programms. Sie haben Eingänge, Ausgänge und eine Reihe von Schritten, die Anweisungen genannt werden und der Reihe nach ausgeführt werden. Alle Funktionen beginnen mit dem Schlüsselwort func, gefolgt von dem Namen der Funktion (main in diesem Fall), einer Liste von null oder mehr „Parametern“, die von Klammern umgeben sind, einem optionalen Rückgabetyp und einem „Körper“, der von geschweiften Klammern umgeben ist. Diese Funktion hat keine Parameter, gibt nichts zurück und hat nur eine Anweisung. Der Name main ist besonders, weil es die Funktion ist, die aufgerufen wird, wenn Sie das Programm ausführen.

Der letzte Teil unseres Programms ist diese Zeile:

 fmt.Println("Hello World")

Diese Anweisung besteht aus drei Komponenten. Zuerst greifen wir auf eine andere Funktion innerhalb des fmt-Pakets namens Println zu (das ist der fmt.Println-Teil, Println bedeutet Print Line). Dann erstellen wir eine neue Zeichenkette, die Hello World enthält, und rufen diese Funktion mit der Zeichenkette als erstem und einzigem Argument auf (auch als Aufruf oder Ausführung bekannt).

An dieser Stelle haben wir bereits eine Menge neuer Terminologie gesehen, und Sie sind vielleicht ein wenig überwältigt. Manchmal ist es hilfreich, sich sein Programm bewusst laut vorzulesen. Eine Lesart des Programms, das wir gerade geschrieben haben, könnte so aussehen:

Erstelle ein neues ausführbares Programm, das auf die Bibliothek fmt verweist und eine Funktion namens main enthält. Diese Funktion nimmt keine Argumente an, gibt nichts zurück und tut Folgendes: Greife auf die Funktion Println zu, die im Paket fmt enthalten ist, und rufe sie mit einem Argument auf – der Zeichenkette Hello World.

Die Funktion Println erledigt die eigentliche Arbeit in diesem Programm. Du kannst mehr darüber herausfinden, indem du folgendes in dein Terminal eingibst:

godoc fmt Println

Unter anderem solltest du dies sehen:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

Go ist eine sehr gut dokumentierte Programmiersprache, aber diese Dokumentation kann schwer zu verstehen sein, wenn du nicht bereits mit Programmiersprachen vertraut bist. Nichtsdestotrotz ist der godoc-Befehl sehr nützlich und eine gute Anlaufstelle, wenn Sie eine Frage haben.

Zurück zu der Funktion, um die es hier geht, diese Dokumentation sagt Ihnen, dass die Println-Funktion alles, was Sie ihr geben, an die Standardausgabe sendet – ein Name für die Ausgabe des Terminals, in dem Sie arbeiten. Diese Funktion bewirkt, dass Hello World angezeigt wird.

Im nächsten Kapitel werden wir untersuchen, wie Go Dinge wie Hello World speichert und darstellt, indem wir etwas über Typen lernen.

Probleme

  • Was ist Leerraum?

  • Was ist ein Kommentar? Welche zwei Möglichkeiten gibt es, einen Kommentar zu schreiben?

  • Unser Programm beginnt mit package main. Womit würden die Dateien im Paket fmt beginnen?

  • Wir haben die Funktion Println verwendet, die im Paket fmt definiert ist. Wenn wir die Funktion Exit aus dem Paket os verwenden wollten, was müssten wir tun?

  • Ändere das Programm, das wir geschrieben haben, so, dass es statt Hello World Hello, my name is gefolgt von deinem Namen ausgibt.

← Previous Index

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.