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.

Reply via email to