Programming in Go: Creating Applications for the 21st Century (Developer's Library)
Your Hands-On Guide to Go, the Revolutionary New Language Designed for Concurrency, Multicore Hardware, and Programmer Convenience
Today’s most exciting new programming language, Go, is designed from the ground up to help you easily leverage all the power of today’s multicore hardware. With this guide, pioneering Go programmer Mark Summerfield shows how to write code that takes full advantage of Go’s breakthrough features and idioms.
Both a tutorial and a language reference, Programming in Go brings together all the knowledge you need to evaluate Go, think in Go, and write high-performance software with Go. Summerfield presents multiple idiom comparisons showing exactly how Go improves upon older languages, calling special attention to Go’s key innovations. Along the way, he explains everything from the absolute basics through Go’s lock-free channel-based concurrency and its flexible and unusual duck-typing type-safe approach to object-orientation.
Throughout, Summerfield’s approach is thoroughly practical. Each chapter offers multiple live code examples designed to encourage experimentation and help you quickly develop mastery. Wherever possible, complete programs and packages are presented to provide realistic use cases, as well as exercises. Coverage includes
- Quickly getting and installing Go, and building and running Go programs
- Exploring Go’s syntax, features, and extensive standard library
- Programming Boolean values, expressions, and numeric types
- Creating, comparing, indexing, slicing, and formatting strings
- Understanding Go’s highly efficient built-in collection types: slices and maps
- Using Go as a procedural programming language
- Discovering Go’s unusual and flexible approach to object orientation
- Mastering Go’s unique, simple, and natural approach to fine-grained concurrency
- Reading and writing binary, text, JSON, and XML files
- Importing and using standard library packages, custom packages, and third-party packages
- Creating, documenting, unit testing, and benchmarking custom packages