I'm finding the use of the blank identifier a little hard to understand. I've looked at effective go and understand most of the use cases they describe but then looking at a tutorial I came across this in a route handler function:
var person Person
_ = json.NewDecoder(req.Body).Decode(&person)
in the first line we create a new empty variable of type Person (a struct previously defined) and then I assume that
&person
is passing the person var in by reference,Decode
functionthis function then goes on to perform a few more tasks before encoding and returning a json response.
Why do we need have the decode assigned to a blank identifier? Couldn't we just run json.NewDecoder(req.Body).Decode(&person)
? if we can't, why not?
I'm assuming you're learning golang and asking because you can't identify why this example used this practice.
As @JimB mentioned in comments, the example writer didn't need to do this they're simply ignoring the Error return.