Learning Go
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.
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.
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 thegokeyword 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.
Learning Go version 1.0
This version should be completely up to date with respect to Go 1.
PDF download
Each night a pdf is build and put online at /files/go.
But there are also regular releases that are announced separately.
Source code of the book
The main Git repository can be found here:
git clone https://github.com/miekg/gobook
It is
written in
with the Memoir class (and a bunch a
extra classes). It should build on all TeX-live (2009) platforms.
If you like this work you may support it by clicking the Flattr button on the right or use PayPal:
Contact
Questions, patches, text, bug reports and general discussions can be directed
to miek@miek.nl (in English or Dutch).
Links
Title page

