A complete introduction into Go
Go Perl Elixir
Pull request Compare This branch is 332 commits behind miekg:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
creative_commons
ex-basics
ex-beyond
ex-channels
ex-communication
ex-functions
ex-interfaces
ex-intro
ex-packages
ex-unsorted
fig
src
tab
.gitignore
Changelog
Makefile
README.mkd
about-miekg.tex
blocksbook.cls
coderemarks.sty
draft.tex
go-basics.tex
go-beyond.tex
go-cc-license.tex
go-channels.tex
go-colophon.tex
go-communication.tex
go-contributors.tex
go-functions.tex
go-interfaces.tex
go-intro.tex
go-misc.tex
go-packages.tex
go-preface.tex
go-setup.tex
go.bib
go.tex
go_a4.tex
go_kindle.tex
listings.sty
todo.tex

README.mkd

Learning Go - a free E-Book for learning the Go language.

This is an introduction in the language Go from Google.

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 the go 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.

Building

When building this from scratch you will need the following packages on Debian/Ubuntu:

  • inkscape
  • gnumeric
  • ttf-droid
  • ttf-dejavu
  • ttf-sazanami-gothic (Japanese font)
  • ttf-arphic-ukai (Chines font)
  • texlive-fonts-recommended
  • texlive-extra-utils
  • texlive-xetex
  • texlive-latex-extra
  • texlive-latex-recommended
  • latex-cjk-xcjk
  • git-core
  • make

After that, you will hopefully only have to give make. If not, so the pre-build pdfs on http://www.miek.nl/files/go/