package nil_test import ( "fmt" "testing" ) type Interface interface { String() string } type Struct struct { sval string } func (me *Struct) String() string { if me == nil { return "nil" } return me.sval } func TestAll(t *testing.T) { var n Interface var x *Struct func() { defer func() { x := recover() if x != nil { println(fmt.Sprint(x)) } }() x = n.(*Struct) }() fmt.Println(x.String()) }