Sobes.tech
Junior — Middle

Jak zaimplementować strukturę danych Set w języku Go?

sobes.tech AI

Odpowiedź od AI

W języku Go nie ma wbudowanego typu Set, ale można go zaimplementować za pomocą mapy (map) z kluczami odpowiedniego typu i wartością bool lub pustą strukturą struct{}. Na przykład, zbiór łańcuchów można utworzyć tak:

package main

import "fmt"

func main() {
    set := make(map[string]struct{})

    // Dodawanie elementów
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Sprawdzanie, czy element istnieje
    if _, exists := set["apple"]; exists {
        fmt.Println("apple jest w zbiorze")
    }

    // Usuwanie elementu
    delete(set, "banana")

    // Iteracja po elementach
    for key := range set {
        fmt.Println(key)
    }
}

Użycie pustej struktury struct{} zamiast bool oszczędza pamięć, ponieważ zajmuje 0 bajtów.