nil_test.go 436 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package nil_test
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. type Interface interface {
  7. String() string
  8. }
  9. type Struct struct {
  10. sval string
  11. }
  12. func (me *Struct) String() string {
  13. if me == nil {
  14. return "nil"
  15. }
  16. return me.sval
  17. }
  18. func TestAll(t *testing.T) {
  19. var n Interface
  20. var x *Struct
  21. func() {
  22. defer func() {
  23. x := recover()
  24. if x != nil {
  25. println(fmt.Sprint(x))
  26. }
  27. }()
  28. x = n.(*Struct)
  29. }()
  30. fmt.Println(x.String())
  31. }