Junior — Middle
Как може да се реализира структурата от данни Set на езика Go?
sobes.tech AI
Отговор от AI
В езика Go няма вграден тип Set, но той може да бъде реализиран чрез карта (map) с ключове от желания тип и стойност bool или празна структура struct{}. Например, множество от низове може да бъде създадено така:
package main
import "fmt"
func main() {
set := make(map[string]struct{})
// Добавяне на елементи
set["apple"] = struct{}{}
set["banana"] = struct{}{}
// Проверка за наличие на елемент
if _, exists := set["apple"]; exists {
fmt.Println("ябълката е в множеството")
}
// Премахване на елемент
delete(set, "banana")
// Обхождане на елементите
for key := range set {
fmt.Println(key)
}
}
Използването на празна структура struct{} вместо bool спестява памет, тъй като заема 0 байта.