Thanks for the clear explanation!

在 2017年5月1日星期一 UTC+8下午9:55:30,Ian Lance Taylor写道:
>
> On Mon, May 1, 2017 at 6:03 AM, feilengcui008 <feilen...@gmail.com 
> <javascript:>> wrote: 
> > 
> >     I have made a little testing about interface assignment and searched 
> the 
> > source code about interface runtime functions like convI2I, and  notice 
> that 
> >     there are two situations where data may be copied or not: 
> >     (1) data not copied:  assign another interface type variable to the 
> > targeted interface variable 
> >     (2) data copied and memory allocated: assign another not interface 
> type 
> > variable to the targeted interface variable 
> > 
> >     I wonder are there any special reasons for that? 
> >     Thanks in advance!  following is my simple testing code and debug 
> info 
>
> Interfaces hold values that must not change while they are in the 
> interface.  When assigning from one interface value to another, it's 
> fine to simply copy the pointer, as we already know that the value 
> can't change.  When assigning in or out of an interface value, in 
> general we need to copy the value so that any changes to the value 
> (such as changing a field in a struct) do not affect the value in the 
> interface. 
>
> Ian 
>

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