The zero value of a struct value is not nil
Each element of such a variable or value is set to the zero value for its type: false for booleans, 0 for integers, 0.0 for floats, "" for strings, and nil for pointers, functions, interfaces, slices, channels, and maps.
In your case, this variable declaration var NewVar Ptr creates the variable, binds corresponding identifier Ptr to it, and gives it a type and an initial value.