On Tue, May 26, 2020 at 3:37 PM Paul Jolly <p...@myitcv.io> wrote:

> > Why the output of this code is nondeterministic?
>
> See https://golang.org/ref/spec#For_statements, specifically the "For
> statements with range clause" subheading, specifically this bullet:
>
> > 3. The iteration order over maps is not specified and is not guaranteed
> to be the same from one iteration to the next. If a map entry that has not
> yet been reached is removed during iteration, the corresponding iteration
> value will not be produced. If a map entry is created during iteration,
> that entry may be produced during the iteration or may be skipped. The
> choice may vary for each entry created and from one iteration to the next.
> If the map is nil, the number of iterations is 0.
>

The implementation actually intentionally makes the iteration order more
varied to avoid people relying on any particular ordering. So much so that
some people started relying on the order to be random....

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAAuPoqcSrjTeX094JOQhnP-qeRiJOPnQS-3-EgqMd6ciGVz%3DkA%40mail.gmail.com.

Reply via email to