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