Summary
This chapter presented two primary topics: functions and packages. Functions are first-class citizens in Go, which makes them powerful and handy. Remember that everything that begins with an uppercase letter is public. The only exception to this rule is package names. Private variables, functions, data type names, and structure fields can be strictly used and called internally in a package, whereas public ones are available to everyone. Additionally, we learned more about the defer
keyword. Also, remember that Go packages are not like Java classes—a Go package can be as big as it needs to be. Regarding Go modules, keep in mind that a Go module is multiple packages with a version.
Finally, this chapter discussed creating documentation, which is an important part of development, workspaces, and versioning command line utilities.
The next chapter discusses systems programming as well as file I/O in more detail.