Junior
Ako implementovať množinu (set) v Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go neexistuje vstavaný dátový typ "množina". Môže byť implementovaný pomocou map.
// Implementácia množiny reťazcov
type Set map[string]struct{}
// Pridanie prvku
func (s Set) Add(item string) {
s[item] = struct{}{} // Používame struct{} na úsporu pamäte
}
// Odstránenie prvku
func (s Set) Remove(item string) {
delete(s, item)
}
// Kontrola, či prvok existuje
func (s Set) Contains(item string) bool {
_, ok := s[item]
return ok
}
// Získanie všetkých prvkov (neusporiadané)
func (s Set) ToSlice() []string {
slice := make([]string, 0, len(s))
for item := range s {
slice = append(slice, item)
}
return slice
}