Learning Go
“Learning Go” is a book that gives an introduction into the Go language of Google. It is licensed under a copy-left license. The book currently consists out +/- 120 (A4 sized) pages and the following chapters:
- Introduction
Show how to install Go and details the lineage of the language Go. - Basics
Types, variables and control structures. - Functions
How to make and use functions. - Packages
Functions and data is grouped together in packages. Here you will see how to make your own package. How to unit test your package is also described. - Beyond the basics
Learn how to create your own data types and define function on them (called methods in Go). - Interfaces
Go does not support Object Orientation in the traditional sense. In Go the central concept is interfaces. - Concurrency
With thego
keyword function can be started in separate routines (called goroutines). Communication with those goroutines is done via channels. - Communication
How to create/read/write from and to files. And how to do networking.
Each chapter concludes with a number of exercises (and answers) to may help you to get some hands on experience. Currently it has more than 30 exercises.
There is also a Chinese translation by Mike Spook.
What readers say:
I am really glad that I found your Go book. It’s been a couple of weeks since I started learning Go, but didn’t make much progress till I found your book.
I also read with great interest the (successive versions of the) free E-book by Miek Gieben & Co. Which I find definitely very well crafted and very useful. Definitely an extremely laudable initiative.
Prebuild PDFs can be found at /downloads/Go. The source code of the book can be found on github.
It is written in LaTeX with the Memoir class (and a bunch a extra classes).
Questions, patches, text, bug reports and general discussions can be directed
to miek@miek.nl
(in English or Dutch).
If you like this work you may choose support it by sending me money :)