0 Tage Serie
Code-Bibliothek

Go für Anfänger

Lies diese Go-Snippets für Anfänger Zeile für Zeile — jedes kommt mit einer Erklärung, was der Code tut und warum.

Go · Anfänger

Fehlerbehandlungsmuster

Anstatt Ausnahmen (Exceptions) zu verwenden, nutzt Go eine explizite Fehlerprüfung. Funktionen geben als letzten Rückgabewert einen 'error'-Typ zurück, der sofort geprüft werden sollte.

FehlerbehandlungBest Practices
Snippet öffnen →
Go · Anfänger

Arbeiten mit Slices

Slices sind dynamische Fenster in Arrays. Im Gegensatz zu Arrays können Slices mit der integrierten 'append'-Funktion in ihrer Größe wachsen.

Arrays & ListenDatentypen
Snippet öffnen →
Go · Anfänger

Die For-Schleife

Go hat nur ein Schleifenkonstrukt: 'for'. Es kann als Standard-C-Style-Schleife oder als 'while'-Schleife verwendet werden, indem Initialisierung und Post-Anweisung weggelassen werden.

KontrollstrukturenSyntax
Snippet öffnen →
Go · Anfänger

Variablendeklarationen

In Go können Sie Variablen mit dem Schlüsselwort 'var' und einem expliziten Typ deklarieren oder den Kurzdeklarationsoperator ':=' verwenden, der den Typ automatisch ableitet.

SyntaxDatentypen
Snippet öffnen →
Go · Anfänger

Einfache Arrays

Arrays in Go haben eine feste Länge, die Teil ihres Typs ist. Einmal definiert, kann sich ihre Größe nicht mehr ändern.

Arrays & ListenDatentypen
Snippet öffnen →
Go · Anfänger

Bedingte Logik mit If-Else

Die if-Anweisung wertet eine boolesche Bedingung aus. Um die Bedingung werden keine Klammern verwendet, aber geschweifte Klammern für den Block sind zwingend erforderlich.

KontrollstrukturenSyntax
Snippet öffnen →
Go · Anfänger

Structs definieren

Structs werden verwendet, um zusammengehörige Daten zu gruppieren. Im Gegensatz zu Klassen in anderen Sprachen verwendet Go Structs, um die Form von Datenobjekten zu definieren.

DatentypenSyntax
Snippet öffnen →
Go · Anfänger

Methoden für Typen

Eine Methode ist eine Funktion mit einem speziellen Receiver-Argument. Sie ermöglicht es, Verhalten an Structs zu binden.

FunktionenSyntax
Snippet öffnen →
Go · Anfänger

Variablendeklaration und Typinferenz

Go bietet zwei Arten Variablen zu deklarieren. Das `var` Schlüsselwort mit explizitem Typ, oder die `:=` Kurzschreibweise, die den Typ aus dem Wert ableitet. Variablen, die mit `:=` in einer Funkti…

SyntaxDatentypen
Snippet öffnen →
Go · Anfänger

Arbeit mit Slices

Slices sind dynamische, wachsende Sequenzen in Go. Anders als Arrays können Slices ihre Größe ändern. Die `append` Funktion fügt Elemente hinzu und vergrößert automatisch das zugrunde liegende Arra…

DatentypenArrays & Listen
Snippet öffnen →
Go · Anfänger

For-Schleife als While-Alternative

Go hat nur ein Schleifen-Schlüsselwort: `for`. Es gibt kein `while` Schlüsselwort. Die `for` Schleife ohne Initialisierung und Post-Anweisungen funktioniert wie eine While-Schleife. Dies macht Go e…

KontrollstrukturenSyntax
Snippet öffnen →
Go · Anfänger

Range-Iteration über Slices

Das `range` Schlüsselwort iteriert über Slices und Maps. Es gibt zwei Werte zurück: Index und Element. Der Unterstrich `_` wird verwendet, wenn man einen Wert nicht benötigt, und teilt Go mit, ihn…

KontrollstrukturenArrays & Listen
Snippet öffnen →
Go · Anfänger

Go Maps verstehen

Maps in Go sind ungeordnete Key-Value-Datenstrukturen. Sie werden mit dem eingebauten `map`-Keyword und der Syntax `map[SchluesselTyp]WertTyp` erstellt. Du kannst Einträge mit Klammernotation hinzu…

DatentypenSyntax
Snippet öffnen →
Go · Anfänger

Eigene Typen mit Structs definieren

Structs sind zusammengesetzte Typen, die verwandte Felder gruppieren. Du definierst ein Struct mit dem `type`-Keyword und erstellst Instanzen mit geschweifter Klammer-Initialisierung. Methoden könn…

DatentypenFunktionen
Snippet öffnen →
Go · Anfänger

Zeiger und Speicheradressen

Zeiger speichern Speicheradressen statt Werte. Der `&`-Operator gibt einen Zeiger auf eine Variable, während `*` einen Zeiger dereferenziert um auf den Wert zuzugreifen. In `double` erwartet der `*…

SyntaxDatentypen
Snippet öffnen →
Go · Anfänger

Switch-Anweisungen in Go

Go's switch ist flexibler als in vielen anderen Sprachen. Es kann gegen Werte oder Bedingungen ohne Ausdruck vergleichen. Cases fallen nicht standardmäßig durch (kein break nötig), aber du kannst `…

KontrollstrukturenSyntax
Snippet öffnen →
Go · Anfänger

Aufräumen mit Defer

Das `defer`-Keyword plant einen Funktionsaufruf zur Ausführung wenn die umgebende Funktion zurückkehrt. Dies ist essentiell für Aufräumen wie Schließen von Dateien oder Freigeben von Ressourcen. Ve…

FunktionenBest Practices
Snippet öffnen →
Go · Anfänger

String-Indexierung und Slicing

Go-Strings sind Byte-Arrays, keine Rune-Arrays. `len(s)` gibt Byte-Anzahl zurück, was sich bei Unicode unterscheidet. Verwende `len([]rune(s))` für tatsächliche Zeichenanzahl. Slice Bytes direkt mi…

DatentypenSyntax
Snippet öffnen →
Go · Anfänger

Type-Assertionen und Type-Switches

Empty Interface `interface{}` akzeptiert jeden Typ. Type-Assertionen extrahieren den zugrunde liegenden Typ mit `i.(type)` im Switch oder `i.(T)` für direkte Assertion. Das Komma-Ok-Idiom prüft, ob…

KontrollstrukturenDatentypen
Snippet öffnen →
Go · Anfänger

Pakete und Module importieren

Go verwendet Pakete, um Code in modulare Einheiten zu organisieren. Die Import-Anweisung bringt externe Pakete aus der Standardbibliothek oder Drittanbieterquellen ein. Pakete wie fmt für formatier…

SyntaxBest Practices
Snippet öffnen →
Go · Anfänger

If-Anweisung mit Vergleichsoperatoren

If-Anweisungen in Go werten boolesche Bedingungen aus und führen entsprechende Codeblöcke aus. Im Gegensatz zu vielen anderen Sprachen verwendet Go keine Klammern um Bedingungen. Die else if-Kette…

KontrollstrukturenDatentypen
Snippet öffnen →
Go · Anfänger

Grundlegende Tests in Go schreiben

Go bietet integrierte Testunterstützung durch das testing-Paket. Testdateien werden mit der Endung _test.go benannt. Testfunktionen beginnen mit dem Präfix Test und erhalten ein *testing.T-Argument…

TestingFunktionenBest Practices
Snippet öffnen →
Go · Anfänger

Slices: Dynamische Arrays in Go

Slices sind dynamische Ansichten auf Arrays. Anders als Arrays mit fester Größe können Slices mit append() wachsen oder schrumpfen. Die make()-Funktion erstellt ein Slice mit vorab reservierter Kap…

DatentypenArrays & Listen
Snippet öffnen →
Go · Anfänger

Die vielseitige for-Schleife

Go hat nur eine Schleifenkonstruktion: for. Sie kann als klassische Dreiteiler-for-Schleife, eine while-artige Schleife oder eine Endlosschleife mit break fungieren. Die range-Klausel iteriert über…

KontrollstrukturenSyntax
Snippet öffnen →