Addison-Wesley Professional, 2012. — 496 p. — (Developer's Library). — ISBN10: 0-13-276408-3, ISBN13: 978-0-13-276408-7.
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.
Mark Summerfield, owner of Qtrac Ltd., is an independent trainer, consultant, technical editor, and writer specializing in Go, Python, C++, Qt, and PyQt. His books include Rapid GUI Programming with Python and Qt (Prentice Hall, 2007), C++ GUI Programming with Qt 4 (with Jasmin Blanchette, Prentice Hall, 2008), Programming in Python 3, Second Edition (Addison-Wesley, 2009), and Advanced Qt Programming (Prentice Hall, 2010).
Tables.
Why Go?
The Structure of the Book.
An Overview in Five ExamplesGetting Going.
Editing, Compiling, and Running.
Hello Who?
Big Digits–Two-Dimensional Slices.
Stack–Custom Types with Methods.
Americanise–Files, Maps, and Closures.
Polar to Cartesian–Concurrency.
Exercise.
Booleans and NumbersPreliminaries.
Boolean Values and Expressions.
Numeric Types.
Example: Statistics.
Exercises.
StringsLiterals, Operators, and Escapes.
Comparing Strings.
Characters and Strings.
Indexing and Slicing Strings.
String Formatting with the Fmt Package.
Other String-Related Packages.
Example: M3u2pls.
Exercises.
Collection TypesValues, Pointers, and Reference Types.
Arrays and Slices.
Maps.
Examples.
Exercises.
Procedural ProgrammingStatement Basics.
Branching.
Looping with For Statements.
Communication and Concurrency Statements.
Defer, Panic, and Recover.
Custom Functions.
Example: Indent Sort.
Exercises.
Object-Oriented ProgrammingKey Concepts.
Custom Types.
Interfaces.
Structs.
Examples.
Exercises.
Concurrent ProgrammingKey Concepts.
Examples.
Exercises.
File HandlingCustom Data Files.
Archive Files.
Exercises.
PackagesCustom Packages.
Third-Party Packages.
A Brief Survey of Go’s Commands.
A Brief Survey of the Go Standard Library.
Exercises.
Epilogue.
The Dangers of Software Patents.
Selected Bibliography.