一个接口包括动态类型和动态值。
如果一个接口的动态类型和动态值都为空,则这个接口为空的。
func IsNil(i interface{}) bool { vi := reflect.ValueOf(i) if vi.Kind() == reflect.Ptr { return vi.IsNil() } return false }