The address of the real value is the same. John =:-> On May 28, 2014 6:04 AM, "Andrew Wilkins" <[email protected]> wrote:
> On Wed, May 28, 2014 at 9:52 AM, Tim Penhey <[email protected]>wrote: > >> On 28/05/14 13:48, Andrew Wilkins wrote: >> > On Wed, May 28, 2014 at 8:47 AM, Tim Penhey <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > On 28/05/14 12:43, Nate Finch wrote: >> > > This sounds like one of those "if you have to ask this question, >> > you're >> > > doing something wrong". >> > > >> > > Can you give an example of where we need this? >> > >> > Sure... let's say we have a stack of errors, for simplicity of the >> > argument lets say it is a slice of error interface values. >> > >> > stack []error >> > >> > * an error is pushed on to the stack initially, we now have one >> error >> > * the same error is pushed (or appended - I don't care) >> > * we now have the same error twice >> > * I push a new error on the stack, so it looks a little like this >> > [err1, err1, err2] right? >> > >> > Now iterating through this slice I want to know when the error >> changes. >> > >> > >> > Can you explain where equality fails? >> >> Equality fails when the interface is satisfied by a non-comparable value >> type, like a struct with a slice in it. > > > I see. In that case, I guess you'd have to use reflect.DeepEquals to > collapse arbitrary errors. > > > I guess you're thinking you'd like to do something like "x is y" in >> > Python. There's no such thing as objects in Go, so no universal >> > definition of identity either. >> >> But an interface is effectively two pointers, one to the type and one to >> the thing that satisfies the interface. Identity in that case is pretty >> simple. >> > > If the pointer is the same, which it won't be if you're storing a slice in > an interface; slices are wider than pointers. > > -- > Juju-dev mailing list > [email protected] > Modify settings or unsubscribe at: > https://lists.ubuntu.com/mailman/listinfo/juju-dev > >
-- Juju-dev mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev
