type FourInts struct { A int ; B int ; C int ; D int } func final () { a := & FourInts {} runtime . Println ( "finalizer of FourInts called" ) }) } func main () { final () runtime . Under the hood, when Go’s GC finds an unreachable object with a finalizer, it’ll call that finalizer but won’t immediately free up the object.