Each package is identified by a unique string
called its import path.
Import paths are the strings that appear in import
declarations.
import ( "fmt" "math/rand" "encoding/json" "golang.org/x/net/html" "github.com/go-sql-driver/mysql" )
As we mentioned in Section 2.6.1, the Go language
specification doesn’t define the meaning of these strings or how to
determine a package’s import path, but leaves these issues to the
tools.
In this chapter, we’ll take a detailed look at how the go
tool
interprets them, since that’s what the majority of Go programmers use
for building, testing, and so on.
Other tools do exist, though.
For example, Go programmers using Google’s internal multi-language
build system follow different rules for naming and locating packages,
specifying tests, and so on, that more closely match the conventions
of that system.
For packages you intend to share or publish, import paths should be globally unique. To avoid conflicts, the import paths of all packages other than those from the standard library should start with the Internet domain name of the organization that owns or hosts the package; this also makes it possible to find packages. For example, the declaration above imports an HTML parser maintained by the Go team and a popular third-party MySQL database driver.