did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321817143

The Go Programming Language Phrasebook

by
  • ISBN13:

    9780321817143

  • ISBN10:

    0321817141

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2012-04-30
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $34.99 Save up to $8.23
  • Digital
    $26.76
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

This book introduces the new Go programming language. Coverage begins with an introduction to the history and philosophy of the language, helping you to understand the reasons for various parts of the syntax and semantics. You will then learn about the design patterns for writing scalable code in Go and have a guided tour of the standard library. Go is a language designed from the ground up for writing fast, concurrent code, incorporating features features from both high and low-level languages. This is useful in a variety of situations, and especially when writing large multiuser web applications. Go is now supported by the Google App Engine for this reason.

Author Biography

David Chisnall is author of Objective-C Phrasebook, Second Edition. He is an active contributor to the GNUstep project and cofounded the Étoilé project to build a desktop environment atop GNUstep. Chisnall has written several articles for informIT.com including a three-part series on Go for Objective-C Programmers.

Table of Contents

1 Introducing Go     1

Go and C     1

Why Go?     4

Goroutines and Channels     7

Selecting a Compiler     10

Creating a Simple Go Program     13

The Go Type System     14

Understanding the Memory Model     16

2 A Go Primer     21

The Structure of a Go Source File     23

Declaring Variables     26

Declaring Functions     29

Looping in Go     32

Creating Enumerations     35

Declaring Structures     37

Defining Methods     39

Implementing Interfaces     42

Casting Types     47

3 Numbers     51

Converting Between Strings and Numbers     52

Using Large Integers     54

Converting Between Numbers and Pointers    56

4 Common Go Patterns     61

Zero Initialization     62

Generic Data Structures     67

Specialized Generic Data Structures     69

Implementation Hiding    72

Type Embedding     75

5 Arrays and Slices     79

Creating Arrays     81

Slicing Arrays    83

Resizing Slices    85

Truncating Slices    87

Iterating Over Arrays    88

6 Manipulating Strings     91

Comparing Strings     92

Processing a String One Character at a Time     94

Processing a Partial String    96

Splitting and Trimming Strings     98

Copying Strings     102

Creating Strings from Patterns     102

Matching Patterns in Strings     104

7 Working with Collections     107

Creating a Map     108

Storing Unordered Groups of Objects     111

Using Lists     112

Defining New Collections     114

8 Handling Errors     117

Deferring Cleanup    118

Panicking and Recovering     121

Returning Error Values     125

Error Delegates    127

9 Goroutines    131

Creating Goroutines     131

Synchronizing Goroutines     134

Waiting for a Condition     137

Performing Thread-Safe Initialization     140

Performing Actions in the Background    142

Communicating Via Channels     144

Using Multiple Channels     148

10 Concurrency Design Patterns    151

Timing Out Connections    152

Aliased xor Mutable     154

Share Memory by Communicating     156

Transactions by Sharing Channels     159

Concurrent Objects     162

Implementing Futures in Go     164

Coalescing Events     166

Map Reduce, Go Style     168

11 Dates and Times     175

Finding the Current Date     176

Converting Dates for Display     177

Parsing Dates from Strings     179

Calculating Elapsed Time     180

Receiving Timer Events     181

12 Accessing Files and the Environment    183

Manipulating Paths     184

Reading a File     186

Reading One Line at a Time     188

Determining if a File or Directory Exists     190

Checking Environment Variables    192

13 Network Access     195

Connecting to Servers     196

Distributing Go     199

Serving Objects     204

Calling Remote Procedures     206

14 Web Applications    207

Integrating with a Web Server     208

Connecting to Web Servers     211

Parsing HTML     213

Generating HTML     216

15 Interacting with the Go Runtime     219

Finding the Type of a Variable     220

Finalizing Structures     223

Copying Arbitrary Types     226

Constructing Function Calls     228

Calling C Functions     230

16 Distributing Go Code     233

Installing Third-Party Packages     234

Creating Packages     236

Documenting Your Code     240

Staying Up to Date     241

17 Debugging Go     243

Using a Debugger     243

Misunderstanding Memory Ordering     247

Spotting Concurrency Bugs     249

Restricting Behavior    252

Building Unit Tests     257

Index     259

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program