Sobes.tech
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.