In the code snippet below, how do I initialize an error variable?
err := nil // can not compile, show "use of untyped nil" if xxx { err = funcA() } else { err = funcB() } if err != nil { panic(err) }
As you can see above, err
will be used in the if-else blocks. I want to use one variable to get the result, but how do I initialize err
here. Thanks!
Initializing a variable means specifying an initial value to assign to it (i.e., before it is used at all). Notice that a variable that is not initialized does not have a defined value, hence it cannot be used until it is assigned such a value.
Within main() , we call doRequest() which returns an error interface to us. We first print the error message returned by the Error() method. Next, we attempt to expose all methods from RequestError by using the type assertion re, ok := err. (*RequestError) .
Should we declare a local variable without an initial value, we get an error. This error occurs only for local variables since Java automatically initializes the instance variables at compile time (it sets 0 for integers, false for boolean, etc.).
You can create a zero-valued error (which will be nil) by declaring the variable.
var err error if xxx { err = funcA() } else { err = funcB() }
It's a common idiom, and you'll see it in plenty of code.
This one looks a little hacky, but is valid too:
err := *new(error)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With