true: a := &T{Name:"test", Child: &T{Name: "blah", Child: nil}} b :=&T{Name:"test", Child: a.Child}
and it's not "childs" пятница, 23 ноября 2018 г., 6:20:31 UTC+3 пользователь Jesse McNelis написал: > > On Fri, Nov 23, 2018 at 2:06 PM Youqi yu <yuyouq...@gmail.com > <javascript:>> wrote: > > > > type T { > > Name string > > } > > a := &T{Name:"test"} > > b :=&T{Name:"test"} > > *a == *b > > Hi, all, I am beginner at golang, I have a question that when compare > struct equality, I was told to use reflect.DeepEqual or make my own > function. but the result of above code is true. Does it mean struct a > equals struct b? > > Yes, they are equal. But how the equality is decided may not always be > what you want. > eg. > > type T { > Name string > Child *T > } > a := &T{Name:"test", Child: &T{Name: "blah", Child: nil}} > b :=&T{Name:"test", Child: &T{Name: "blah", Child: nil}} > *a == *b // false > reflect.DeepEqual(a,b) //true > -- 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.