How to remove repeated element in a slice?
go
Solution
Store it in map.
like that
rndmap := make(map[int]bool)
for len(rndmap) < YOUR_LEN {
rndmap[rand.Intn(YOUR_MAX_RAND)] = true
}
Result map will never store repeated indexes.
You can convert it into slice like this
rndslice := make([]int,0)
for i, _ := range rndmap {
rndslice = append(rndslice, i)
}
Problem
I have made a code to generate random numbers and delete the repeated ones like below: ``` package main import ( "fmt" "math/rand" "time" ) func main() { list := [7]int{} for i := 0; i < 7; i++ { here: rand.Seed(time.Now().UnixNano()) s := rand.Intn(16) fmt.Println(s) if s != list[0] && s != list[1] && s != list[2] && s != list[3] && s != list[4] && s != list[5] && s != list[6] { list[i] = s } else { goto here } } fmt.Println("list:", list) } ``` I noticed that there were a lot repeated code like: ``` s!=list[0]&&list[1] ``` But when I write it to: ``` s!=list[0:6] ``` It is wrong, how can I do this properly?