Warum gibt es in Go keinen eingebauten Datentyp "Set" und wie kann man ihn implementieren?
Hallo zusammen! Ich bin ein Anfänger in Go-Entwicklung, komme von Python und bin auf ein unerwartetes Problem gestoßen.\n\nIn Python habe ich ständig `set()` verwendet, um die Eindeutigkeit von Elementen zu prüfen, Duplikate aus Listen zu entfernen und schnell auf Enthaltensein zu testen. Zum Beispiel:\n\n```python\nmy_list = [1, 2, 2, 3, 3, 4]\nunique = set(my_list) # {1, 2, 3, 4}\nif 3 in unique: # O(1) Prüfung\n print("Gefunden!")\n```\n\nAls ich anfing, in Go zu programmieren, erwartete ich, etwas Ähnliches in der Standardbibliothek zu finden, aber zu meiner Überraschung gibt es weder einen `Set`-Typ noch Generics (vor Version 1.18). Ich musste Workarounds schreiben:\n\n```go\n// Versuch 1: map verwenden\nseen := make(map[int]bool)\nitems := []int{1, 2, 2, 3, 3, 4}\nfor _, v := range items {\n seen[v] = true\n}\n// Aber das ist umständlich - man muss ok prüfen, sehr ausführlich\n
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen