Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Go
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Go ist eine von Google entwickelte, bewusst einfach gehaltene Programmiersprache, die schnell übersetzt und eigenständige Programme ohne Abhängigkeiten erzeugt. Sie ist besonders beliebt für Netzwerkdienste, Kommandozeilenwerkzeuge und Cloud-Software wie Docker oder Kubernetes.
Vorbemerkungen
- Installation über apt: Ubuntu 26.04 liefert Go 1.26 im Paket
golang-go. Das Paket enthält den Befehlgo, der übersetzt, testet, formatiert und Abhängigkeiten verwaltet. - Module: Jedes Go-Projekt ist ein Modul mit einer Datei
go.mod. Darin stehen der Name des Moduls und die benötigten Bibliotheken. Fremde Bibliotheken lädtgoselbst aus dem Internet; ein eigener Paketmanager ist nicht nötig. - Ordner
~/go: Heruntergeladene Bibliotheken landen in~/go/pkg/mod, mitgo installinstallierte Programme in~/go/bin. - Neuere Version: Wer eine neuere Version als die von Ubuntu braucht, kann Go zusätzlich von der offiziellen Downloadseite nach
/usr/local/goentpacken. Für den Einstieg reicht die apt-Version.
Installation
1. Paketlisten aktualisieren
Damit apt die aktuellen Versionen aus den Ubuntu-Paketquellen kennt.
sudo apt update
2. Go installieren
Installiert den Go-Compiler mit allen Werkzeugen und der Standardbibliothek.
sudo apt install golang-go
Prüfen: Die Ausgabe lautet z. B. go version go1.26… linux/amd64. Steht dort eine andere Version, liegt noch eine ältere Installation in /usr/local/go, die im Suchpfad zuerst gefunden wird.
go version
3. Ordner für installierte Programme in den Suchpfad aufnehmen
Programme, die später mit go install installiert werden, liegen in ~/go/bin. Damit die Shell sie findet, kommt dieser Ordner in den Suchpfad. Danach ein neues Terminal öffnen.
nano ~/.bashrc
Springe mit Strg+Ende ans Ende der Datei und füge in einer eigenen Zeile an (im Terminal mit Strg+Umschalt+V). Speichere mit Strg+O und Enter und beende nano mit Strg+X:
export PATH="$PATH:$HOME/go/bin"
Prüfen: Im neuen Terminal enthält die Ausgabe /go/bin.
echo $PATH
Erstes Programm
4. Projektordner anlegen
Ein eigener Ordner für das Übungsprojekt.
mkdir -p ~/hallo-go
5. In den Ordner wechseln
Alle folgenden Befehle beziehen sich auf diesen Ordner.
cd ~/hallo-go
6. Modul anlegen
Erzeugt die Datei go.mod. Der Name beispiel/hallo ist frei wählbar; bei veröffentlichten Projekten nimmt man meist die Adresse des Repositorys, z. B. github.com/name/projekt.
go mod init beispiel/hallo
Prüfen: Die Meldung lautet go: creating new go.mod: module beispiel/hallo.
7. Quelltext anlegen
Legt main.go an. Das Programm nummeriert eine Liste und gibt sie danach in einer Zeile aus. Go rückt mit Tabulatoren ein; das Werkzeug gofmt sorgt später automatisch dafür.
nano main.go
Füge diesen Inhalt ein (im Terminal mit Strg+Umschalt+V), speichere mit Strg+O und Enter und beende nano mit Strg+X:
package main
import (
"fmt"
"strings"
)
func main() {
sprachen := []string{"Go", "Rust", "PHP", "Kotlin", "TypeScript"}
for i, s := range sprachen {
fmt.Printf("%d. %s\n", i+1, s)
}
fmt.Println("Alle:", strings.Join(sprachen, ", "))
}
8. Programm starten
go run . übersetzt das Modul im aktuellen Ordner in einen temporären Ordner und startet es sofort.
go run .
Prüfen: Die Ausgabe lautet:
1. Go
2. Rust
3. PHP
4. Kotlin
5. TypeScript
Alle: Go, Rust, PHP, Kotlin, TypeScript
9. Eigenständiges Programm erzeugen
go build erzeugt die Datei hallo (benannt nach dem letzten Teil des Modulnamens). Sie enthält alles Nötige und läuft auch auf Rechnern ohne Go.
go build
Prüfen: Das Programm liefert dieselbe Ausgabe wie in Schritt 8.
./hallo
10. Quelltext prüfen und formatieren
go vet sucht nach typischen Fehlern, gofmt -l . listet Dateien auf, die nicht einheitlich formatiert sind. Mit gofmt -w . werden sie korrigiert.
go vet ./... && gofmt -l .
Prüfen: Beide Befehle geben nichts aus – der Code ist in Ordnung.
Wie geht es weiter?
- Bibliotheken:
go get <Adresse>fügt eine Bibliothek zugo.modhinzu, z. B.go get github.com/google/uuid.go mod tidyräumt nicht mehr benutzte Einträge auf. - Tests: Dateien mit der Endung
_test.goenthalten Tests;go test ./...führt alle aus. - Andere Systeme: Go übersetzt ohne weitere Werkzeuge auch für andere Plattformen, z. B.
GOOS=windows GOARCH=amd64 go buildfür Windows. - Editor: Visual Studio Code mit der Erweiterung „Go“ bietet Autovervollständigung über das Werkzeug
gopls, das die Erweiterung auf Nachfrage selbst installiert. In Neovim lässt sichgoplsebenfalls einbinden.
Deinstallieren
1. Übungsprojekt entfernen
Löscht den Projektordner.
rm -rf ~/hallo-go
2. Heruntergeladene Bibliotheken löschen
Go legt Bibliotheken schreibgeschützt ab, damit sie nicht versehentlich verändert werden. Deshalb nicht mit rm, sondern mit diesem Befehl entfernen. Er muss vor Schritt 4 laufen, solange go noch installiert ist.
go clean -modcache
3. Zwischenspeicher und Go-Ordner löschen
Entfernt die Übersetzungszwischenstände und den nun leeren Ordner ~/go samt ~/go/bin.
rm -rf ~/go ~/.cache/go-build
4. Go entfernen
Entfernt das Paket golang-go.
sudo apt purge golang-go
5. Nicht mehr benötigte Abhängigkeiten entfernen
Räumt die eigentlichen Versionspakete (z. B. golang-1.26-go) auf, die mit golang-go installiert wurden.
sudo apt autoremove
6. Suchpfad-Eintrag entfernen
Löscht die Zeile aus Schritt 3 der Installation wieder aus ~/.bashrc.
nano ~/.bashrc
Suche mit Strg+W nach go/bin und drücke Enter. Lösche die Zeile export PATH="$PATH:$HOME/go/bin" mit Strg+K. Speichere mit Strg+O und Enter und beende nano mit Strg+X.
Prüfen: Die Meldung lautet go: Befehl nicht gefunden bzw. command not found.
go version
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Open Knowledge (Freies Wissen): Alle Texte stehen unter der freien Lizenz Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0) und können frei gelesen, geteilt und weiterverarbeitet werden.