Go 101 is a book focusing on Go syntax/semantics and all kinds of details. The book also tries to help gophers gain a deep and thorough understanding of Go. The book is expected to be helpful for both beginner and experienced Go programmers.
* About Go 101 - why this book is written.
* An Introduction of Go - why Go is worth learning.
* The Official Go SDK - how to compile and run Go programs.
* Become Familiar With Go Code
* Introduction of Source Code Elements
* Keywords and Identifiers
* Basic Types and Their Value Literals
* Constants and Variables - also introduces untyped values and type deductions.
* Common Operators - more type deduction rules are introduced.
* Function Declarations and Calls
* Code Packages and Package Imports
* Expressions, Statements and Simple Statements
* Basic Control Flows
* Goroutines, Deferred Function Calls and Panic/Recover
* Go Type System
* Overview of Go Type System - a must read to master Go programming.
* Value Parts - to gain a deeper understanding into Go values.
* Arrays, Slices and Maps - first-class citizen container types.
* Functions - variadic functions, function types and values.
* Channels - the Go way to do concurrency synchronizations.
* Interfaces - value boxes used to do reflection and polymorphism.
* Type Embedding - type extension in the Go way.
* Type-Unsafe Pointers
* Built-in Generics
* Reflections - the reflect standard package.
* Some Special Topics
* Line Break Rules
* More About Deferred Function Calls
* Some Panic/Recover Use Cases
* The Right Places to Call the Built-in recover Function
* Code Blocks and Identifier Scopes
* Expression Evaluation Orders
* Value Copy Costs in Go
* Bounds Check Elimination
* Concurrent Programming
* Concurrency Synchronization Overview
* Channel Use Cases
* How to Gracefully Close Channels
* Other Concurrency Synchronization Techniques - the sync standard package.
* Atomic Operations - the sync/atomic standard package.
* Memory Order Guarantees in Go
* Common Concurrent Programming Mistakes
* Memory Blocks
* Memory Layouts
* Memory Leaking Scenarios
* Some Summaries
* Some Simple Summaries
* nil in Go
* Value Conversion, Assignment and Comparison Rules
* Syntax/Semantics Exceptions
* More Go Related Topics