Home >Backend Development >Golang >Why Does Go Give an \'err Declared and Not Used\' Error?
Unutilized Variables in Go
In Go programming, it's essential to utilize declared variables. A compilation error, "err declared and not used," may arise if you declare a variable that remains unused within the code's scope. This error is not indicative of any shadowing issues.
In the given code snippet:
package main import ( "fmt" ) func main() { var ( err error dto = make(map[string]interface{}) ) dto[`thing`], err = getThings() fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
The error occurs due to the unused err variable. Although it is declared, it's only assigned a value during the call to getThings() and not utilized further.
According to Go's FAQ, "The presence of an unused variable may indicate a bug." Unused variables can slow down compilation and build times. Therefore, Go requires the utilization of all declared variables.
To resolve the error, remove the err variable declaration or assign it to _:
package main import ( "fmt" ) func main() { var ( _ error dto = make(map[string]interface{}) ) dto[`thing`], _ = getThings() fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
Alternatively, utilize err for error checking:
package main import ( "fmt" ) func main() { var ( err error dto = make(map[string]interface{}) ) dto[`thing`], err = getThings() if err != nil { fmt.Println(err) return } fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
While it's permissible to have unused global variables or function arguments, it's essential to utilize variables declared within function scopes to avoid compile-time errors.
The above is the detailed content of Why Does Go Give an 'err Declared and Not Used' Error?. For more information, please follow other related articles on the PHP Chinese website!