Unused local variables


As you may have noticed, programs with unused local variables do not compile.

func main() {
    var n int // “n declared and not used”
    n = 5     // this doesn’t help

../main.go:2:6: n declared and not used

This is a deliberate feature of the Go language.

The presence of an unused variable may indicate a bug […] Go refuses to compile programs with unused variables or imports, trading short-term convenience for long-term build speed and program clarity. Go FAQ: Can I stop these complaints about my unused variable/import?

Unused global variables and function arguments are however allowed.


If you don’t want to remove or comment out the declaration, you can add a dummy assignment.

func main() {
        var n int
        n = 5
        _ = n // n is now "used"

Further reading

Learn to love your compiler is a list of common Go compiler error messages: what they mean and how to fix the problem.

Share this page: