Sobes.tech
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
}