Sobes.tech
Junior — Middle

Είναι δυνατόν να δημιουργήσετε μια δομή ή τύπο δεδομένων που μοιάζει με σύνολο στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, δεν υπάρχει ενσωματωμένος τύπος "σύνολο" (set), αλλά μπορεί να υλοποιηθεί χρησιμοποιώντας έναν χάρτη (map) με κλειδιά του επιθυμητού τύπου και τιμές τύπου struct{} ή bool. Η χρήση του struct{} εξοικονομεί μνήμη, καθώς η κενή δομή δεν καταλαμβάνει χώρο.

Παράδειγμα υλοποίησης ενός συνόλου από συμβολοσειρές:

// Δημιουργούμε ένα σύνολο από συμβολοσειρές
set := make(map[string]struct{})

// Προσθέτουμε ένα στοιχείο
set["apple"] = struct{}{}

// Ελέγχουμε αν ένα στοιχείο υπάρχει
if _, exists := set["apple"]; exists {
    fmt.Println("Το στοιχείο υπάρχει στο σύνολο")
}

// Διαγράφουμε ένα στοιχείο
delete(set, "apple")

Έτσι, ένας χάρτης με κλειδιά και κενές τιμές μοντελοποιεί αποτελεσματικά ένα σύνολο.