Junior
Go'да топтоо (set) кантип ишке ашырылат?
sobes.tech AI
AIден жооп
Go тилинде "топ" деп аталган ички маалымат тиби жок. Ал map аркылуу ишке ашырылышы мүмкүн.
// Жолдор топтун ишке ашырылышы
type Set map[string]struct{}
// Элемент кошуу
func (s Set) Add(item string) {
s[item] = struct{}{} // Артык жадды колдонбоо үчүн struct{} колдонобуз
}
// Элементти өчүрүү
func (s Set) Remove(item string) {
delete(s, item)
}
// Элемент бар-жогун текшерүү
func (s Set) Contains(item string) bool {
_, ok := s[item]
return ok
}
// Бардык элементтерди алуу (ретсиз)
func (s Set) ToSlice() []string {
slice := make([]string, 0, len(s))
for item := range s {
slice = append(slice, item)
}
return slice
}