Sobes.tech
Junior — Middle

Ar įmanoma sukurti struktūrą ar duomenų tipą, panašų į rinkinį, kalboje Go?

sobes.tech AI

Atsakymas iš AI

Go kalboje nėra įmontuoto "rinkinys" (set) tipo, tačiau jį galima įgyvendinti naudojant žemėlapį (map) su norimo tipo raktų ir struct{} arba bool reikšmių tipais. struct{} naudojimas taupo atmintį, nes tuščia struktūra neužima vietos.

Pavyzdys, kaip įgyvendinti eilutinių reikšmių rinkinį:

// Sukuriame eilutinių reikšmių rinkinį
set := make(map[string]struct{})

// Pridedame elementą
set["apple"] = struct{}{}

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

// Pašaliname elementą
delete(set, "apple")

Šiuo būdu, žemėlapis su raktų ir tuščių reikšmių efektyviai modeliuoja rinkinį.