Sets are not strictly built-in to the go language, but you can easily emulate them using this simple pattern.
// Create a set
set := make(map[int]struct{})
// Add some values
set[1] = struct{}{}
set[5] = struct{}{}
// Check if some values are in the set
if _, ok := set[1]; ok {
fmt.Println("1 is in the set")
}
if _, ok := set[2]; ok {
fmt.Println("2 is in the set")
}
// Remove a value
delete(set, 1)
// List values
for i := range set {
fmt.Println(i)
}