Gold, an experimental Go local docs server, Go docs generation tool, and code reader. NEW!
-- show type implementation relations --
-- show code statistics --
-- smooth code view experiences --
-- and more... --

Go 101

Go 101 is a book focusing on Go syntax/semantics and all kinds of runtime related things (Go 1.15 ready) and tries to help gophers gain a deep and thorough understanding of Go. This book also collects many details of Go and in Go programming. It is expected that this book is helpful for both beginner and experienced Go programmers.

the book

(about 500 pages, 350+ examples, 101+ details)

The digital versions of this book are available at the following places: Tapir, the author of Go 101, has spent 3+ years on writing the Go 101 book and maintaining the go101.org website. New contents will continue being added to the book and the website from time to time. Tapir is also an indie game developer. If you would like to, you can support the book and the website by playing Tapir's games (made for both Android and iPhone/iPad). Individual donations are also accepted via PayPal.
2020/Sep/06: This book ever mentioned that using "append" to clone slices is often much more efficient than using "make+copy" to clone slices. This is valid for Go Toolchain before version 1.15. However, since version 1.15, the official standard Go compiler has made special optimizations for the latter way, so now the latter way is always more efficient than the former way (the "append" way).
2020/Aug/13: Correction: the Compiler Optimizations for Conversions Between Strings and Byte Slices section said "a conversion (from byte slice to string) which is used as a map key in map element indexing syntax" before. In fact, it shoud be "a conversion (from byte slice to string) which is used as a map key in map element retrieval indexing syntax". The example code is also corrected.
Index:

The Go 101 project is hosted on Github. Welcome to improve Go 101 articles by submitting corrections for all kinds of mistakes, such as typos, grammar errors, wording inaccuracies, description flaws, code bugs and broken links.

If you would like to learn some Go details and facts every serveral days, please follow Go 101's official Twitter account: @go100and1.

Tapir, the author of Go 101, has spent 3+ years on writing the Go 101 book and maintaining the go101.org website. New contents will continue being added to the book and the website from time to time. Tapir is also an indie game developer. You can also support Go 101 by playing Tapir's games (made for both Android and iPhone/iPad):
Individual donations via PayPal and cryptocurrencies are welcome too:
Bitcoin: 1xucQbv5jujFPPwhyg395ri5yV71hx9g9
Ethereum: 0x5dc4aa2c2bbfaadae373dadcfca11b3358912212