Solutions for some exercices of the The Go Programming Language book:
- ch2/popcount.go,
ch2/popcount_test.go
(benchmarks will be done later, in 11.6):
- 2.3
- 2.4
- 2.5
- ch6/intset.go,
ch6/intset_test.go:
- 6.1
- 6.2
- 6.3
- 6.4
- 6.5
- ch7/wc.go, ch7/wc_test.go:
- 7.1
- 7.2
- ch7/tree.go, ch7/tree_test.go:
- 7.3
- ch8/clockwall.go,
ch8/launch-clocks.sh:
- 8.1
- ch8/ftpd.go:
- 8.2
- ch8/netcat3.go,
ch8/reverb1.go:
- 8.3
- ch8/reverb2.go:
- 8.4
- ch8/depth-limited-crawler.go:
- 8.6
- ch8/mirror.go:
- 8.7
- ch8/reverb2-with-timeout.go:
- 8.8
- ch8/du.go
- 8.9
- ch8/depth-limited-crawler-with-cancel.go:
- 8.10
- ch8/fetch.go:
- 8.11
- ch8/fetch.go:
- 8.12
- 8.13
- 8.14
- 8.15
- ch9/bank1.go:
- 9.1
- ch9/popcount.go:
- 9.2
Quick book review: The books feels great; in particular:
- interesting exercises, close to real-world, varied (e.g. Exercise 8.2: implementing a concurrent FTP server);
- professional/pragmatic code/solutions (e.g. "no need to parse your XML as a tree if what you want to do with it can be achieved by parsing it as a list of tokens");
- real-world code used as example (e.g. Go standard library);
- complete nicely Go's documentation (e.g. detailling the behavior of the
http.HandlerFunc(x)
type conversion (not function call)).
Not for absolute beginners, as stated in the introduction, buf very good for CS students, or people who got programming skills as they go, but who lack on the engineering side.