Junior — Middle
Lehetséges-e olyan szerkezetet vagy adattípust létrehozni, amely hasonló egy halmazhoz a Go nyelvben?
sobes.tech MI
Válasz az MI-től
Go nyelvben nincs beépített "halmaz" (set) típus, de azt meg lehet valósítani egy olyan térképpel (map), amely a kívánt típusú kulcsokat és struct{} vagy bool típusú értékeket tartalmaz. A struct{} használata memória takarékos, mivel az üres struktúra nem foglal helyet.
Példa egy stringekből álló halmaz megvalósítására:
// Stringek halmazának létrehozása
set := make(map[string]struct{})
// Elem hozzáadása
set["apple"] = struct{}{}
// Ellenőrzés, hogy az elem létezik-e
if _, exists := set["apple"]; exists {
fmt.Println("Az elem a halmazban van")
}
// Elem törlése
delete(set, "apple")
Így egy kulcsokkal és üres értékekkel rendelkező térkép hatékonyan modellezi a halmazt.