Top-level Variable Declarations
At the top level, use the standard var keyword. Do not specify the type,
unless it is not the same type as the expression.
| Bad | Good |
|---|---|
| ```go var _s string = F() func F() string { return "A" } ``` | ```go var _s = F() // Since F already states that it returns a string, we don't need to specify // the type again. func F() string { return "A" } ``` |
Specify the type if the type of the expression does not match the desired type exactly.
type myError struct{}
func (myError) Error() string { return "error" }
func F() myError { return myError{} }
var _e error = F()
// F returns an object of type myError but we want error.