I don't think there are any. Because you can do it doesn't mean you should. It's incredibly confusing for readers (hence the confusion in this thread).
On Thursday, July 7, 2016 at 8:52:06 AM UTC-7, Kyle Stanly wrote: > > So, what would be the appropriate use-cases for this; I.E, using a map > index expression as the value? > > On Thursday, July 7, 2016 at 10:05:42 AM UTC-4, Kyle Stanly wrote: >> >> I noticed that the specification states: >> >> "As with an assignment, if present the operands on the left must be >> addressable or map index expressions; they denote the iteration >> variables." >> >> >> Here is the thing I am having trouble imagining... if the iterator keeps >> a snapshot of the map at the time the iterator was created, would the map >> index expression obtain the actual, up-to-date value for the given key? >> Maybe even determine if it was deleted? >> >> I.E... >> >> for k, m[k] := range m {...} >> >> Apparently is valid Go syntax, however what are the semantics behind >> this? If another Goroutine calls delete(...) and removes that element from >> the map, would this pretty much restore that value back into the map (from >> what is held in the snapshot)? How would you go about retrieving that value >> again? Do you need to re-enter the map to obtain the value again through >> that key, 'k'? What are the practical applications for 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.