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.