Go 101

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

the book
(about 500 pages)
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. If you would like to, you can support the book and the website by making a donation through Paypal ($5, $9, $15, or $25) or buying Tapir a coffee (way 1 and way 2).
2019/Oct/18: An explanation description flaw is found in the Evaluation and Assignment Orders in Assignment Statements section in the "Expression Evaluation Orders" article. A simpler description is provoded now.
2019/Sep/30: A new fact is added to the "Type-Unsafe Pointers" article and a serious mistake was found in the pattern 3: convert unsafe pointer to uintptr, do arithmetic operations with the uintptr value, then convert it back section. (I decided to withdraw this erratum.)
2019/Sep/25: The book made a stupid mistake in the "The Right Places to Call the recover Function" article. The section containing the mistake will be modified after some time.
2019/Sep/19: The "named type" and "unnamed type" terminologies are added back in this book. But they are eqivalent to "defined type" and "non-defined type" now.
Index: