Go programmieren für Dummies. Wei-Meng Lee
Чтение книги онлайн.
Читать онлайн книгу Go programmieren für Dummies - Wei-Meng Lee страница 13
|__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 Kapitel 1
aus:
$ go build
Wenn Sie nun in das Verzeichnis Kapitel 1
schauen, befindet sich dort eine neue Datei namens Kapitel_1
(Kapitel_1.exe
unter Windows).
Um diese Datei unter macOS auszuführen, geben Sie Folgendes im Terminal ein:
$ ./Kapitel_1
Unter Windows verwenden Sie folgenden Befehl:
C:\users\IhrName\Kapitel 1>Kapitel_1
Sie sollten nun eine Ausgabe ähnlich der folgenden sehen:
Hallo Welt!
2020-10-01 12:01:13.412568 +0800 +08 m=+0.000365532
Kompilieren von Programmen für mehrere Betriebssysteme
Bei der Installation von Go werden automatisch mehrere Go-Umgebungsvariablen eingerichtet, damit Ihre Go-Programme korrekt funktionieren. Insbesondere erkennt das Installationsprogramm bestimmte Werte der Host-Architektur und des genutzten Betriebssystems, die für die Umgebungsvariablen GOHOSTARCH
beziehungsweise GOHOSTOS
nötig sind. Die Werte dieser zwei Variablen geben die Zielplattform an, für die Ihre Programme kompiliert werden.
Wenn Sie sich diese Werte der Go-Umgebungsvariablen anzeigen lassen möchten, nutzen Sie den Befehl env
:
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/weimenglee/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
…
…
PKG_CONFIG="pkg-config"
Um Ihr Programm für ein anderes Betriebssystem zu kompilieren, müssen Sie zwei weitere Umgebungsvariablen anpassen: GOOS
und GOARCH
. Diese beiden Variablen konfigurieren das Ziel-Betriebssystem anhand der in Tabelle 1.1 gezeigten Werte.
Betriebssystem | GOOS | GOARCH |
---|---|---|
macOS |
darwin
|
amd64
|
Linux |
linux
|
amd64
|
Windows |
windows
|
amd64
|
Tabelle 1.1: Umgebungsvariablen für verschiedene Betriebssysteme
Um ein Programm für macOS zu kompilieren, nutzen Sie die folgenden Befehle und Optionen:
$ GOOS=darwin GOARCH=amd64 go build -o Kapitel_1-mac
Wenn Go in naher Zukunft nativ auf Apple Silicon portiert wird, wäre der Wert von
GOARCH
entsprechend arm64
.
Um ein Programm für Windows OS zu kompilieren, sind folgende Befehle und Optionen nötig:
$ cd ~/"Kapitel 1"
$ GOOS=windows GOARCH=amd64 go build -o Kapitel_1-windows.exe
Über die Option
-o
(kurz für Output) können Sie einen Namen für die ausführbare Datei angeben.
Der vorgenannte Befehl kompiliert das Paket im Verzeichnis Kapitel 1
für Windows und speichert die ausführbare Datei als Kapitel_1-windows.exe
.
Um ein Programm für Linux zu kompilieren, nutzen Sie folgende Befehle und Optionen:
$ GOOS=linux GOARCH=amd64 go build -o Kapitel_1-linux
Falls Sie mit Go auf dem Raspberry Pi arbeiten, nutzen Sie für
GOARCH
den Wert arm64
.
Wenn auf Ihrem Computer macOS oder Linux läuft, können Sie die für die jeweilige Plattform erstellten ausführbaren Dateien mit dem file
-Befehl überprüfen:
$ file Kapitel_1-mac
Kapitel_1-mac: Mach-O 64-bit executable x86_64
$ file Kapitel_1-windows.exe
Kapitel_1-windows.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
$ file Kapitel_1-linux