Sobes.tech
Назад к вопросам
Junior — Middle
77

Возможна ли реализация структуры данных Set в языке Go?

Ответ от нейросети

sobes.tech 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("apple есть в множестве")
    }

    // Удаление элемента
    delete(set, "banana")
}

Использование пустой структуры struct{} вместо bool экономит память, так как struct{} занимает 0 байт.