Hi Gophers,
Last year there was a discussion about removing one of the
more common gotchas in Go.
To quote from the discussion:
the problem is that loops like this one don’t do what they look like they
do:
var all []*Item
for _, item := range items { all = append(all, &item) }
That is, this code has a bug. After this loop executes, all contains
len(items) identical pointers, each pointing at the same Item, holding the
last value iterated over. This happens because the item variable is
per-loop, not per-iteration: &item is the same on every iteration, and item is
overwritten on each iteration.
https://github.com/golang/go/discussions/56010
What was the resolution of this discussion?
Was the proposed change accepted?
Will it be released in Go 1.21 or 1.22?
It is hard to figure this out from the discussion. There are hundreds of
comments,
but there is no clear marking of the resolution (apart from the discussion
now being closed) either at the top of bottom of the discussion.
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/5d88208e-fbbf-44d5-b693-50deff176fedn%40googlegroups.com.