Go Programming
A lightweight execution-visualization book.
Foundations
Hello Go
Variables
Slices
If Statements
Loops
Functions
Data Types
Numeric Types
Strings and Runes
Booleans
Constants and Iota
Type Conversion
Control Flow
If Else
Switch Statements
For Loops
Range Loops
Break and Continue
Collections and Composite Types
Arrays
Appending to Slices
Maps
Structs
Pointers
Functions and Methods
Multiple Return Values
Variadic Functions
Methods
Pointer Receivers
Anonymous Functions
Interfaces and Errors
Interface Basics
Interface Slices
Error Return Values
Custom Error Types
Type Assertions
Packages and Modules
Package Main
Import Groups
Import Aliases
Exported Names
Module Paths
Testing Basics
Assert Equal
Table Tests
Helper Functions
Edge Cases
Error Checks
Files and Directories
Read Text
Write File
File Info
Directory Entries
Path Join and Clean
JSON and Data Exchange
Marshal Struct
Unmarshal Struct
Struct Tags
Optional Fields
Encode Collections
Time and Formatting
Fixed Times
Format Layouts
Parse Times
Add Durations
Compare Times
Strings and Text Processing
String Runes
Contains and Prefix
Split and Join
Replace Text
Builder Format
Generics Basics
Generic Identity
Type Constraints
Slice Helper
Map Key Helper
Generic Box
Concurrency Basics
Goroutine Handoff
Wait Group
Mutex Section
Buffered Channel
Worker Sequence
Channels and Select
Send and Receive
Buffered Capacity
Close and Range
Select With a Ready Case
Nonblocking Receive
Context and Cancellation
Cancel Signal
Context Values
Helper Context
Early Stop
Cancellation Branch
HTTP Clients
Build Request
Query Parameters
Request Headers
Response Status
Client Helper
HTTP Servers
Route Matching
Method Checks
Response Model
JSON Response Text
Middleware Headers
Command-Line Programs
Arguments Slice
Flag Model
Validation Errors
Subcommand Dispatch
Usage Output
Standard Library Utilities
Strings Helpers
Strconv Conversion
Sort Values
Regexp Match
Bytes Buffer