The plan for “for;;” is much more risky than “for-each”, because “for;;” has more variation uses in reality. I have no doubt that many non-bug compatibility-broken or performance-degradation cases will be found in the GOEXPERIMENT phase.
On Saturday, March 25, 2023 at 2:44:59 PM UTC+8 Amnon wrote: > 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 golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/86379ce9-a958-4b57-a834-e789d1e03495n%40googlegroups.com.