The following program might print: 31 > 37 > 47 > 47 > 37 > 31 >
or 31 > 37 > 47 > 47 > but with the highest possibility to print 31 > 37 > 47 > Is not normal? package main import ( "fmt" "math/rand" "runtime" "time" "unsafe" ) type Foo struct { x int a int } func main() { for i := 0; i < 3; i++ { f := NewFoo(i) println(f.a) } runtime.GC() time.After(time.Second) } func do(i *uint) { runtime.SetFinalizer(i, func(f *uint) { fmt.Println(*f) }) } //go:noinline func NewFoo(i int) *Foo { f := &Foo{a: rand.Intn(50)} do((*uint)(unsafe.Pointer(&f.a))) return f } -- 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/db59b870-b9c7-4411-a461-5857eb7017e2%40googlegroups.com.