关于接口 nil 比较的问题,还是没吃透,有大神帮忙解释解释下面的代码吗?为什么一个 nil 一个非 nil
var a = (*interface{})(nil) fmt.Println(reflect.TypeOf(a), reflect.ValueOf(a)) if a == nil { fmt.Printf("a is nil\n") }else { fmt.Printf("a is not nil\n") } var val interface{} = (*interface{})(nil) fmt.Println(reflect.TypeOf(val), reflect.ValueOf(val)) if val == nil { fmt.Println("val is nil") } else { fmt.Println("val is not nil") } output
*interface {} <nil> a is nil *interface {} <nil> val is not nil 