This file lists topics that already exist (prefixed by *) and topics that
should be added (prefixed by -). It should be kept up-to-date with tour.article.

* Hello, 世界
* Go local
* Packages
* Imports
- "Imported but not used" errors (later perhaps)
* Exported names
* Functions
* Functions continued
* Multiple results
* Named results
- Variables (single declaration first)
* Variables
* Variables with initializers
* Short variable declarations
* Basic types
* Type inference
* Type conversions
* Zero values
* Constants
* Numeric Constants
* For
* For continued
* For is Go's "while"
* Forever
* If
* If with a short statement
* If and else
* Exercise: Loops and Functions
* Structs
* Struct Fields
* Pointers
* Struct Literals
* The new function
* Arrays
* Slices
* Slicing slices
* Making slices
* Append
- Copy
* Nil slices
* Range
* Range continued
- The blank identifier
- Slices of slices.
* Exercise: Slices
* Maps
* Map literals
* Map literals continued
* Mutating Maps
- Maps and range
* Exercise: Maps
* Function values
* Function closures
* Exercise: Fibonacci closure
* Switch
* Switch evaluation order
* Switch with no condition
- Complex numbers
* Advanced Exercise: Complex cube roots
- the type keyword
* Methods and Interfaces
* Methods
* Methods continued
* Methods with pointer receivers
* Interfaces
* Interfaces are satisfied implicitly
- Interface assignment
- Empty interface
* Errors
* Exercise: Errors
* Web servers
* Exercise: HTTP Handlers
* Images
* Exercise: Images
* Exercise: Rot13 Reader
- Sort (see sort package examples)
- Exercise: Sort
- Embedding
- Exercise: Embedding (sort by different fields)
- Type assertion
- Type switch
- Exercise: Visitor (walk a tree?)
* Concurrency
* Goroutines
* Channels
* Buffered Channels
* Range and Close
* Select
* Default Selection
* Exercise: Equivalent Binary Trees
* Exercise: Equivalent Binary Trees
* Exercise: Web Crawler
- More language features
* Defer
- Panic and recover
- init functions
- Tools
- Godoc
- Gofmt
* Where to Go from here...

