I'm very curious about the answer to this unanswered StackOverflow question: http://stackoverflow.com/questions/41357948/what-golang-compiler-will-do-when-fmt-println
import ( "fmt") type shout interface { echo()} type a struct {} func (*a) echo () { fmt.Println("a")} type b struct {} func (*b) echo () { fmt.Println("b")} func compare(a, b shout) { //fmt.Println(&a, &b) if a == b { fmt.Println("same") } else { fmt.Println("not same") }} func main() { a1 := &a{} b1 := &b{} a2 := &a{} a1.echo() b1.echo() compare(a1, b1) compare(a1, a2) compare(a1, a1) } The output is different if a fmt.Println is commented or not. Commented: not samenot same same Not commented: 0x1040a120 0x1040a128not same0x1040a140 0x1040a148 same0x1040a158 0x1040a160 same To me, it seems a compiler bug, or some undefined behaviour. Can someone help me understand? Thank you. -- 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.