Sobes.tech
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 байта.