Junior — Middle
Πώς μπορεί να υλοποιηθεί μια δομή δεδομένων Set στη γλώσσα Go;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go δεν υπάρχει ενσωματωμένος τύπος Set, αλλά μπορεί να υλοποιηθεί χρησιμοποιώντας έναν χάρτη (map) με κλειδιά του επιθυμητού τύπου και τιμή bool ή κενή δομή struct{}. Για παράδειγμα, ένα σύνολο συμβολοσειρών μπορεί να γίνει έτσι:
package main
import "fmt"
func main() {
set := make(map[string]struct{})
// Προσθήκη στοιχείων
set["apple"] = struct{}{}
set["banana"] = struct{}{}
// Έλεγχος αν υπάρχει στοιχείο
if _, exists := set["apple"]; exists {
fmt.Println("το μήλο υπάρχει στο σύνολο")
}
// Διαγραφή στοιχείου
delete(set, "banana")
// Επανάληψη σε στοιχεία
for key := range set {
fmt.Println(key)
}
}
Η χρήση μιας κενής δομής struct{} αντί για bool εξοικονομεί μνήμη, καθώς καταλαμβάνει 0 bytes.