Sobes.tech
Junior — Middle

Kaip įgyvendinti duomenų struktūrą Set Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje nėra įmontuoto Set tipo, tačiau jį galima įgyvendinti naudojant žemėlapį (map) su raktų tipu ir reikšme bool arba tuščia struktūra struct{}. Pavyzdžiui, eilutės rinkinį galima sukurti taip:

package main

import "fmt"

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

    // Elementų pridėjimas
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Patikrinimas, ar elementas yra
    if _, exists := set["apple"]; exists {
        fmt.Println("obuolys yra rinkinyje")
    }

    // Elemento pašalinimas
    delete(set, "banana")

    // Elementų perėjimas
    for key := range set {
        fmt.Println(key)
    }
}

Naudojant tuščią struktūrą struct{} vietoj bool taupo atmintį, nes ji užima 0 baitų.