Sobes.tech
Junior — Middle

Este posibil să creezi o structură sau un tip de date similar cu un set în limbajul Go?

sobes.tech AI

Răspuns de la AI

În limbajul Go, nu există un tip încorporat de "mulțime" (set), dar acesta poate fi implementat folosind o hartă (map) cu chei de tipul dorit și valori de tip struct{} sau bool. Utilizarea lui struct{} economisește memorie, deoarece structura goală nu ocupă spațiu.

Exemplu de implementare a unei mulțimi de șiruri:

// Creăm o mulțime de șiruri
set := make(map[string]struct{})

// Adăugăm un element
set["apple"] = struct{}{}

// Verificăm dacă un element există
if _, exists := set["apple"]; exists {
    fmt.Println("Elementul există în mulțime")
}

// Ștergem un element
delete(set, "apple")

Astfel, o hartă cu chei și valori goale modelează eficient o mulțime.