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

В языке Go нет встроенного типа Set, но его можно реализовать с помощью карты (map) с ключами нужного типа и значением bool или пустой структурой struct{}. Например, множество строк можно сделать так:

Короткий ответ

Что ответить на собеседовании

В языке Go нет встроенного типа Set, но его можно реализовать с помощью карты (map) с ключами нужного типа и значением bool или пустой структурой struct{}. Например, множество строк можно сделать так:

Подробный разбор

Ответ с пояснениями

В языке 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")

    // Перебор элементов
    for key := range set {
        fmt.Println(key)
    }
}

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку