If I have a struct containing a nil
pointer of type A
, using reflect.DeepEqual
to check if that property is nil
will result in false
, which strikes me as odd behaviour.
type Container struct {
O *Obj
}
type Obj struct {
Message string
}
var c Container
eq := reflect.DeepEqual(c.O, nil)
fmt.Printf("O value: %v, is nil: %t", c.O, eq)
// Prints: "O value: <nil>, is nil: false"
Specifically, I am marshaling a JSON object into a struct, where I would like to test that a specific property is nil
when the corresponding JSON structure does not contain it. If reflect.DeepEqual
is not the way to go, how should I do this?