Junior
Hogyan valósítható meg egy halmaz (set) Go-ban?
sobes.tech MI
Válasz az MI-től
A Go nyelvben nincs beépített "halmaz" adattípus. map segítségével valósítható meg.
// Sztringek halmazának megvalósítása
type Set map[string]struct{}
// Elem hozzáadása
func (s Set) Add(item string) {
s[item] = struct{}{} // struct{} használata az extra memória elkerülése érdekében
}
// Elem eltávolítása
func (s Set) Remove(item string) {
delete(s, item)
}
// Ellenőrzés, hogy az elem létezik-e
func (s Set) Contains(item string) bool {
_, ok := s[item]
return ok
}
// Minden elem lekérése (nem rendezett)
func (s Set) ToSlice() []string {
slice := make([]string, 0, len(s))
for item := range s {
slice = append(slice, item)
}
return slice
}