0 Tage Serie
Code-Bibliothek

Go für Fortgeschrittene

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

Go · Mittel

Implizite Interface-Implementierung

In Go werden Interfaces implizit implementiert. Ein Typ erfüllt ein Interface, indem er einfach dessen Methoden implementiert; es gibt kein Schlüsselwort 'implements'. Dies entkoppelt die Definitio…

Design PatternsBest Practices
Snippet öffnen →
Go · Mittel

Error-Wrapping und Unwrapping

Go 1.13+ führte Error-Wrapping mittels des %w-Verbs in fmt.Errorf ein. Dies erlaubt es, Kontext zu einem Fehler hinzuzufügen, während man weiterhin mit errors.Is auf den ursprünglichen Sentinel-Err…

FehlerbehandlungBest Practices
Snippet öffnen →
Go · Mittel

Komposition durch Struct-Embedding

Go verwendet Struct-Embedding, um Komposition zu erreichen. Wenn ein Typ ohne Feldnamen eingebettet wird, werden seine Methoden und Felder in das äußere Struct 'befördert', sodass direkt auf sie zu…

SyntaxDesign Patterns
Snippet öffnen →
Go · Mittel

Abbruchsteuerung mit context.WithTimeout

Das Context-Paket ist essenziell für die Steuerung von Lebenszyklen und den Abbruch nebenläufiger Prozesse. WithTimeout erstellt einen abgeleiteten Kontext, der sich nach einer bestimmten Zeit auto…

Async & ConcurrencyBest Practices
Snippet öffnen →
Go · Mittel

Tasks synchronisieren mit sync.WaitGroup

Eine WaitGroup wartet auf den Abschluss einer Gruppe von Goroutinen. Die Haupt-Goroutine ruft 'Add' auf, um die Anzahl der Tasks festzulegen, jeder Worker ruft 'Done' auf und 'Wait' blockiert, bis…

Async & ConcurrencyFunktionen
Snippet öffnen →