I was hitting an issue in a project I\'m working on. I found a way around it, but I wasn\'t sure why my solution worked. I\'m hoping that someone more experience with how
There is just one item
variable for the entire loop, which is assigned the corresponding value during each iteration of the loop. You do not get a new item
variable in each iteration. So you are just repeatedly taking the address of the same variable, which will of course be the same.
On the other hand, if you declared a local variable inside the loop, it will be a new variable in each iteration, and the addresses will be different:
for idx, item := range *coll {
temp := item
output[idx] = &temp
}