ISBN-10:
0321817141
ISBN-13:
9780321817143
Pub. Date:
05/14/2012
Publisher:
Addison-Wesley
The Go Programming Language Phrasebook / Edition 1

The Go Programming Language Phrasebook / Edition 1

by David Chisnall
Current price is , Original price is $34.99. You

Temporarily Out of Stock Online

Please check back later for updated availability.

Product Details

ISBN-13: 9780321817143
Publisher: Addison-Wesley
Publication date: 05/14/2012
Series: Developer's Library Series
Edition description: New Edition
Pages: 288
Sales rank: 833,983
Product dimensions: 4.50(w) x 6.90(h) x 0.70(d)

About the Author

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

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews