Sobes.tech
Junior

Go-da yığın (set) necə həyata keçirilə bilər?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində "kümə" adlı daxili məlumat tipi yoxdur. Onu map istifadə edərək həyata keçirmək olar.

// Sətir küməsinin tətbiqi
type Set map[string]struct{}

// Element əlavə etmək
func (s Set) Add(item string) {
	s[item] = struct{}{} // Əlavə yaddaş sərf etməmək üçün struct{} istifadə edirik
}

// Elementi silmək
func (s Set) Remove(item string) {
	delete(s, item)
}

// Elementin olub-olmadığını yoxlamaq
func (s Set) Contains(item string) bool {
	_, ok := s[item]
	return ok
}

// Bütün elementləri almaq (sırasız)
func (s Set) ToSlice() []string {
	slice := make([]string, 0, len(s))
	for item := range s {
		slice = append(slice, item)
	}
	return slice
}