The Go package
Similar to other languages, Go source code files are grouped into compilable and sharable units known as packages. However, all Go source files must belong to a package (there is no such notion as a default package). This strict approach allows Go to keep its compilation rules and package resolution rules simple by favoring convention over configuration. Let us take a deep dive into the fundamentals of packages, their creation, use, and recommended practice.
Understanding the Go package
Before we dive into package creation and use, it is crucial to take a high-level view of the concept of packages to help steer the discussion later. A Go package is both a physical and a logical unit of code organization used to encapsulate related concepts that can be reused. By convention, a group of source files stored in the same directory are considered to be part of the same package. The following illustrates a simple directory tree, where each directory represents a package containing...