Go 101

By Liu Xu

Go 101 - Liu Xu
  • Release Date: 2019-04-11
  • Genre: Programming

Description

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.

Contents:
* About Go 101 - why this book is written.
* Acknowledgements
* 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.
  * Pointers
  * Structs
  * Value Parts - to gain a deeper understanding into Go values.
  * Arrays, Slices and Maps - first-class citizen container types.
  * Strings
  * Functions - variadic functions, function types and values.
  * Channels - the Go way to do concurrency synchronizations.
  * Methods
  * 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
  * Explain Panic/Recover Mechanism in Details
  * 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
  * 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