Junior
როგორ განვახორციელოთ ნაკრები (set) Go-ში?
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
}