>From the spec <https://go.dev/ref/spec#Size_and_alignment_guarantees>:
> A struct or array type has size zero if it contains no fields (or elements, respectively) that have a size greater than zero. Two distinct zero-size variables may have the same address in memory. On Thu, Feb 22, 2024 at 11:56 AM Brien Colwell <xcolw...@gmail.com> wrote: > I'm confused by this output. It appears that the interface of two > different pointers to an empty struct are equal. In all other cases, > interface equality seems to be the pointer equality. What's going on in the > empty struct case? > > ``` > package main > > import "fmt" > > type Foo struct { > } > > func (self *Foo) Hello() { > } > > type FooWithValue struct { > A int > } > > func (self *FooWithValue) Hello() { > } > > type Bar interface { > Hello() > } > > func main() { > a := &Foo{} > b := &Foo{} > fmt.Printf("%t\n", *a == *b) > fmt.Printf("%t\n", a == b) > fmt.Printf("%t\n", Bar(a) == Bar(b)) > > c := &FooWithValue{A: 1} > d := &FooWithValue{A: 1} > fmt.Printf("%t\n", *c == *d) > fmt.Printf("%t\n", c == d) > fmt.Printf("%t\n", Bar(c) == Bar(d)) > } > ``` > > Prints (emphasis added on the strange case): > > ``` > true > false > **true** > true > false > false > ``` > > > -- > 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. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/d93760c9-61a7-4a3c-9b5c-d89f023d2253n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/d93760c9-61a7-4a3c-9b5c-d89f023d2253n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAEkBMfGOHMd%3D4R2QC%2BRKTimBZq%3DThsz8n2wORxYFxQMRgtyCsQ%40mail.gmail.com.