* mountain...@gmail.com <mountain...@gmail.com> [190403 05:10]: > package main > > func main() { > b := []int{1} > > bb := make([]*int, 0, 1) > for k, v := range b {
The above range clause will assign to k the index of the current element, and it will assign to v a copy (as if v = b[k]) of the element at that index. Go does not have references of the kind that C++ or Java has, so v cannot be a reference, in that sense, to b[k]; it must be a value copy. If what you really want is to be able to refer to the location of the element in the slice (really its backing array), omit the v in the range clause and just use &b[k]: for k := range b { _ = &b[k] // do what you want } > _ = &v //8 line > _ = &b[k] //9 line > // bb = append(bb, &v) > bb = append(bb, &b[k]) > } > > // for _, v := range bb { > // fmt.Println(*v) > // } > } ...Marvin -- 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.