Go Checklist
This page compares what we are going to cover when compared with the Go Tour.
Basics
Packages, variables, and functions
Topic |
Covered? |
Packages |
✅ |
Imports |
✅ |
Exported names |
✅ |
Functions |
✅ |
Multiple results |
✅ |
Named return values |
- |
Variables |
✅ |
Variables with initializers |
- |
Short variable declarations |
✅ |
Basic types |
✅ |
Zero values |
- |
Type conversions |
- |
Type inference |
✅ |
Constants |
✅ |
Numeric Constants |
- |
Flow control statements: for, if, else, switch and defer
Topic |
Covered? |
For |
✅ |
For is Go's "while" |
✅ |
Forever |
✅ |
If |
✅ |
If with a short statement |
- |
If and else |
✅ |
Switch |
✅ |
Switch with no condition |
- |
Defer |
✅ |
Stacking defers |
- |
More types: structs, slices, and maps.
Topic |
Covered? |
Pointers |
- |
Structs |
✅ |
Struct Fields |
✅ |
Pointers to structs |
✅ |
Struct Literals |
✅ |
Arrays |
✅ |
Slices |
- |
Slices are like references to arrays |
- |
Slice literals |
- |
Slice length and capacity |
- |
Nil slices |
- |
Creating a slice with make |
- |
Slices of slices |
- |
Appending to a slice |
- |
Range |
- |
Maps |
✅ |
Map literals |
- |
Mutating Maps |
- |
Function values |
✅ |
Function closures |
✅ |
Methods and interfaces
Topic |
Covered? |
Methods |
✅ |
Methods are functions |
✅ |
Pointer receivers |
✅ |
Pointers and functions |
- |
Methods and pointer indirection |
- |
Choosing a value or pointer receiver |
- |
Interfaces |
✅ |
Interfaces are implemented implicitly |
✅ |
Interface values |
✅ |
Interface values with nil underlying values |
- |
Nil interface values |
- |
The empty interface |
- |
Type assertions |
- |
Type switches |
- |
Stringers |
- |
Errors |
✅ |
Readers |
✅ |
Images |
✅ |
Concurrency
Topic |
Covered? |
Goroutines |
- |
Channels |
- |
Buffered Channels |
- |
Range and Close |
- |
Select |
- |
Default Selection |
- |
sync.Mutex |
- |
Next
The next section is
Start the project for the Library.