This chapter presented its reader with an exploration of Go functions. It started with an overview of named function declarations, followed by a discussion on function parameters. The chapter delved into a discussion of function types and function values. The last portion of the chapter discussed the semantics of error handling, panic, and recovery. The next chapter continues the discussion of functions; however, it does so within the context of Go packages. It explains the role of a package as a logical grouping of Go functions (and other code elements) to form sharable and callable code modules.