Imports

Learn about imports in Go.

We'll cover the following...

Unused imports

Go programs with unused imports don’t compile. This is a deliberate feature of the language since importing packages slows down the compiler. In large programs, unused imports could make a significant impact on compilation time.

To keep the compiler happy during development, you can reference the package in some way:

Go (1.16.5)
package main
import (
"fmt"
"math"
)
// Reference unused package
var _ = math.Round
func main() {
fmt.Println("Hello")
}

goimports

A better solution is to use the goimports tool. goimports removes unreferenced imports. What’s even better is that the following widget does not use goimports and the compilation fails

Go (1.16.5)
package main
import "math" // imported and not used: "math"
func main() {
fmt.Println("Hello") // undefined: fmt
}

After running goimports:

./goimports main.go 
Go (1.16.5)
package main
import "fmt"
func main() {
fmt.Println("Hello")
}

In the above code, goimports removes the unreferenced import math ...