List of Figures

 

Chapter 1. Introducing Go

Figure 1.1. Working hard? (via XKCD)

Figure 1.2. Many goroutines execute on a single OS thread

Figure 1.3. Using channels to safely pass data between goroutines

Figure 1.4. Inheritance versus composition

Figure 1.5. The Go Playground

Chapter 2. Go quick-start

Figure 2.1. The flow of the program architecture

Chapter 3. Packaging and tooling

Figure 3.1. Output of go command help text

Figure 3.2. Local Go documentation

Chapter 4. Arrays, slices, and maps

Figure 4.1. Array internals

Figure 4.2. Values of the array after the declaration of the array variable

Figure 4.3. Values of the array after the declaration of the array variable

Figure 4.4. Values of the array after changing the value of index 2

Figure 4.5. An array of pointers that point to integers

Figure 4.6. Both arrays after the copy

Figure 4.7. Two arrays of pointers that point to the same strings

Figure 4.8. Two-dimensional arrays and their outer and inner values

Figure 4.9. Slice internals with underlying array

Figure 4.10. The representation of a nil slice

Figure 4.11. The representation of an empty slice

Figure 4.12. Two slices sharing the same underlying array

Figure 4.13. The underlying array after the assignment operation

Figure 4.14. The underlying array after the append operation

Figure 4.15. The new underlying array after the append operation

Figure 4.16. A representation of the slice of strings

Figure 4.17. A representation of the new slice after the operation