This book is 100% complete
Completed on 2019-09-07
About the Book
Go 101 does the followings:
- Emphasizes on basic concepts and terminologies. Without understanding these basic concepts and terminologies, it is hard to fully understand many rules and high level concepts.
- Adds the value part terminology and use one special article to explain value parts. This article uncovers the underlying structures of some kinds of types, so that Go programmers could understand Go values of those types more deeply. I think knowing a little possible underlying implementations is very helpful to clear some confusions about all kinds of Go values.
- Explains memory blocks in detail. Knowing the relations between Go values and memory blocks is very helpful to understand how a garbage collector works and how to avoid memory leaking.
- Views interface values as boxes for wrapping non-interface values. I found thinking interface values as value boxes is very helpful to clear many interface related confusions.
- Makes several summary articles and special topic articles by aggregating many knowledge points and details, which would save Go programmers much learning time.
§0. About Go 101 - why this book is written.
§2. An Introduction of Go - why Go is worth learning.
§3. The Official Go SDK - how to compile and run Go programs.
Become Familiar With Go Code
§4. Introduction of Source Code Elements
§5. Keywords and Identifiers
§6. Basic Types and Their Value Literals
§7. Constants and Variables - also introduces untyped values and type deductions.
§8. Common Operators - more type deduction rules are introduced.
§9. Function Declarations and Calls
§10. Code Packages and Package Imports
§11. Expressions, Statements and Simple Statements
§12. Basic Control Flows
§13. Goroutines, Deferred Function Calls and Panic/Recover
Go Type System
§14. Overview of Go Type System - a must read to master Go programming.
§17. Value Parts - to gain a deeper understanding into Go values.
§18. Arrays, Slices and Maps - first-level citizen container types.
§20. Functions - variadic functions, function types and values.
§21. Channels - the Go way to do concurrency synchronizations.
§23. Interfaces - value boxes used to do reflection and polymorphism.
§24. Type Embedding - type extension in the Go way.
§25. Type-Unsafe Pointers
§26. Built-in Generics
§27. Reflections - the reflect standard package.
Some Special Topics
§28. Line Break Rules
§29. More About Deferred Function Calls
§30. Some Panic/Recover Use Cases
§31. The Right Places to Call the Built-in recover Function
§32. Code Blocks and Identifier Scopes
§33. Expression Evaluation Orders
§34. Value Copy Costs in Go
§35. Bounds Check Elimination
§36. Concurrency Synchronization Overview
§37. Channel Use Cases
§38. How to Gracefully Close Channels
§39. Other Concurrency Synchronization Techniques - the sync standard package.
§40. Atomic Operations - the sync/atomic standard package.
§41. Memory Order Guarantees in Go
§42. Common Concurrent Programming Mistakes
§43. Memory Blocks
§44. Memory Layouts
§45. Memory Leaking Scenarios
§46. Some Simple Summaries
§47. nil in Go
§48. Value Conversion, Assignment and Comparison Rules
§49. Syntax/Semantics Exceptions
§50. Go Details 101
§51. Go FAQ 101
§52. Go Tips 101
§53. More Go Related Topics
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Free Updates. Free App. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets), MOBI (for Kindle) and in the free Leanpub App (for Mac, Windows, iOS and Android). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.