hehe, thanks, so if i want understand deeply, need to look up gc code?

在 2019年4月3日星期三 UTC+8下午10:34:57,Ian Lance Taylor写道:
>
> On Wed, Apr 3, 2019 at 6:32 AM <mount...@gmail.com <javascript:>> wrote: 
> > 
> > thanks! v must be a value copy,Is this determined by the compiler? 
>
> It's determined by the language definition. 
>
> Ian 
>
>
> > 在 2019年4月3日星期三 UTC+8下午7:57:26,Marvin Renich写道: 
> >> 
> >> * mount...@gmail.com <mount...@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 golan...@googlegroups.com <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
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