The history of this behavior is explained in the release notes for Go 1.3: https://golang.org/doc/go1.3#map
On Friday, June 24, 2016 at 8:48:20 AM UTC-4, Val wrote: > > 2 implementations here : > http://www.programming-idioms.org/idiom/10/shuffle-a-list/1564/go > > As for the map iteration trick, the runtime doesn't guarantee to randomize > anything, although it often tries to, so developers don't rely on some > specific order. I've seen (in the past) some map iterations consistently > not randomized at all. This behaviour may have evolved, but don't rely on > it. > > > On Friday, June 24, 2016 at 1:05:49 PM UTC+2, dc0d wrote: >> >> Hi; >> >> To shuffle items in a slice I'm doing this: >> >> var res []Item >> >> //fill res logic >> >> shuffle := make(map[int]*Item) >> for k, v := range res { >> shuffle[k] = &v >> } >> res = nil >> for _, v := range shuffle { >> res = append(res, *v) >> } >> >> Which inserts items into a map then ranges over that map. Ranging over a >> map in Go returns the items in random order. >> >> 1 - I thought it's a cool trick! >> 2 - Is anything bad about doing this? >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.