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")
Έτσι, ένας χάρτης με κλειδιά και κενές τιμές μοντελοποιεί αποτελεσματικά ένα σύνολο.