Menu
Coddy logo textTech

Das Set-Idiom in Go

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 31 von 68.

Go verfügt nicht über eine integrierte Set-Datenstruktur wie viele andere Programmiersprachen. Go-Entwickler haben jedoch eine elegante Lösung unter Verwendung von Maps zur Simulation von Sets geschaffen, und dieses Muster ist so verbreitet geworden, dass es als idiomatisches Go gilt.

Das Go-Set-Idiom verwendet eine Map, bei der Sie sich nur für die Schlüssel interessieren, nicht für die Werte. Da Sie etwas als Wert speichern müssen, verwenden Go-Programmierer eine leere Struktur struct{}. Hier ist das grundlegende Muster:

var mySet map[string]struct{}

Das leere Struct struct{} ist besonders, da es null Byte Speicher belegt. Dies macht es perfekt für Sets, bei denen man nur verfolgen muss, ob etwas existiert oder nicht, ohne Speicher für bedeutungslose Werte zu verschwenden.

Dieser Ansatz nutzt die grundlegende Eigenschaft von Map-Schlüsseln: Sie müssen eindeutig sein. Wenn Sie ein Element zu Ihrem Set hinzufügen, fügen Sie eigentlich einen Schlüssel zur Map hinzu. Die Eindeutigkeit wird automatisch durch das Verhalten der Map erzwungen, was Ihnen echte Set-Semantik verleiht.

In den kommenden Lektionen werden Sie lernen, wie Sie Sets mithilfe dieses idiomatischen Go-Musters erstellen, manipulieren und mit ihnen arbeiten. Diese Technik wird in Go-Codebasen häufig verwendet, um eindeutige Elemente zu verfolgen, Algorithmen zu implementieren und Probleme zu lösen, bei denen eine schnelle Prüfung auf Mitgliedschaft erforderlich ist.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Spickzettel

Go hat keine integrierte Set-Datenstruktur, verwendet jedoch Maps, um Sets mit dem idiomatischen Muster zu simulieren:

var mySet map[string]struct{}

Die leere Struktur struct{} wird als Werttyp verwendet, da sie null Byte Speicher belegt. Map-Schlüssel müssen eindeutig sein, was automatisch Set-Semantik für das Verfolgen eindeutiger Elemente bietet.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf