¥ 403

The Go Programming Language Phrasebook(英文版)

英文书名:The Go Programming Language Phrasebook
2012-05-10  David Chisnall (作者)  
阅读 2453 次  0 条评论

简介

Essential Go code and idioms for all facets of the development process This guide gives you the code “phrases” you need to quickly and effectively complete a wide variety of projects with Go, today’s most exciting new programming language. Tested, easy-to-adapt code examples illuminate every step of Go development, helping you write highly scalable, concurrent software. You’ll master Go-specific idioms for working with strings, collections, arrays, error handling, goroutines, slices, maps, channels, numbers, dates, times, files, networking, web apps, the runtime, and more.

目录

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

0 回复
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传