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į.