A Comprehensive Guide to Go Programming
Are you about to start a new exciting career with Go programming language? You found the right book to help you to learn Go!
Why Go Programming Language?
There are many programming languages in use today with different feature sets. You should pick the right programming language for the problem at hand. Some languages are more suitable for specific problems.
If you are looking for a simple and powerful general-purpose programming language, Go would be a great choice.
Salient Features & Facts
- Compiled
- Statically typed
- Garbage collected
- Built-in concurrency
- Very fast compilation
- No classes
- 25 keywords
Go, also commonly referred to as Golang, is a general-purpose programming language. Go was initially developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. Go was publicly released as a free/open source software in November 2009 by Google. Go is used by many organizations in different problem domains.
Why this Book?
This book is a comprehensive guide to the Go programming language. If you are new to programming, this book is going to be useful for you.
- Book Features
- Easy to follow examples.
- Exercise at the end of chapters.
- Additional exercises with the solution at the end of the book.
- Cover all the major feature of Go.
- Side notes about related topics
Table of Contents
1. Introduction
Preparations -- Organizing Code -- Organization of Chapters -- Suggestions to Use This Book
2. Quickstart
Hello World! -- Building and Running Programs -- The Example Explained -- Basics -- Exercises
3. Control Structures
If -- For -- Switch Cases -- Defer Statements -- Deferred Panic Recover -- Goto -- Exercises
4. Data Structures
Primitive Data Types -- Constants -- Arrays -- Slices -- Maps -- Custom Data Types -- Pointers -- Exercises
5. Functions & Structs
Parameters -- Return Values -- Variadic Functions -- Anonymous Functions -- Function as Value -- Methods -- Exercises
6. Interfaces
Type with Multiple Interfaces -- Empty Interface -- Pointer Receiver -- Type Assertions -- Type Switches -- Exercises
7. Concurrency
Goroutine -- Channels -- Waitgroups -- Select -- Buffered Channels-- Channel Direction -- Lazy Initialization Using sync -- Exercises
8. Packages
Creating a Package -- Package Initialization -- Documenting Packages -- Publishing Packages -- Module -- Moving Type Across Packages -- Exercises
9. Input/Output
Command Line Arguments -- Interactive Input-- Using flag Package -- String Formatting -- Exercises
10. Testing
Failing a Test -- Logging Message -- Failing with Log Message -- Skipping Test -- Parallel Running -- Exercises
11. Tooling
Getting Help -- Basic Information -- Building and Running-- Running Test -- Formatting Code-- Displaying Documentation -- Find Suspicious Code Using Vet -- Exercises
Appendix A: Answers
Appendix B: Vim Configuration
Further Readings
About the Author
Baiju Muthukadan is a software engineer based in Bangalore, India. He started his software development career in 2002. His first job was at FSF India. Baiju has contributed to many free/open source software over the last so many years. He wrote his first book related to Python in 2007. Since 2013 he is working on various Go projects. Baiju has been conducting Go related workshops since 2016. Twitter: @baijum
You will get the eBook in PDF, EPUB, and MOBI formats.