Sobes.tech
Junior — Middle

Comment peut-on implémenter une structure de données Set en langage Go?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, il n'existe pas de type Set intégré, mais il peut être implémenté à l'aide d'une carte (map) avec des clés du type souhaité et une valeur bool ou une structure vide struct{}. Par exemple, un ensemble de chaînes peut être réalisé ainsi :

package main

import "fmt"

func main() {
    set := make(map[string]struct{})

    // Ajout d'éléments
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Vérification de la présence d'un élément
    if _, exists := set["apple"]; exists {
        fmt.Println("apple est dans l'ensemble")
    }

    // Suppression d'un élément
    delete(set, "banana")

    // Parcours des éléments
    for key := range set {
        fmt.Println(key)
    }
}

L'utilisation d'une structure vide struct{} au lieu de bool économise de la mémoire, car elle occupe 0 octets.