Go 語言趣學指南

Nathan Youngman , Roger Peppé 黃健宏譯

立即出貨

  • Go 語言趣學指南-preview-1
  • Go 語言趣學指南-preview-2
Go 語言趣學指南-preview-1

買這商品的人也買了...

相關主題

商品描述

《Go語言趣學指南》是一本面向Go語言初學者的書,
循序漸進地介紹了使用Go語言所必需的知識,展示了非常多生動有趣的例子,
並通過提供大量練習來加深讀者對書中所述內容的理解。

本書共分8個單元,分別介紹變量、常量、分支和循環等基礎語句,
整數、浮點數和字符串等常用類型,類型、函數和方法,數組、切片和映射,
結構和接口,指針、 nil和錯誤處理方法,並發和狀態保護,並且每個單元都包含相應的章節和單元測試。

《Go語言趣學指南》適合對初學Go語言有不同需求的程序員閱讀。
無論是剛開始學習Go語言的新手,還是想要回顧Go語言基礎知識的Go語言使用者,
只要是想用Go做開發,無論是開發小型腳本還是大型程序,《Go語言趣學指南》都會非常有幫助。

作者簡介

Nathan Youngman

既是一位自學成才的網絡開發者,也是一位終生學習概念的踐行者。
他是加拿大埃德蒙頓市Go聚會的組織者、Canada Learning Code的輔導教師以及狂熱的地鼠玩偶攝影愛好者。


Roger Peppé

是一位Go貢獻者,他維護著一系列開源Go項目,負責組織英國紐卡斯爾市的Go聚會,
並且當前正在承擔Go雲端基礎設施軟件的相關工作。

目錄大綱

目錄
第0單元入門
第1章各就各位,預備,Go!3
1.1什麼是Go 4
1.2 Go Playground 6
1.3包和函數7
1.4唯一允許的大括號放置風格8
1.5小結9
實驗:playground.go 10

第1單元命令式編程
第2章被美化的計算器13
2.1執行計算13
2.2格式化輸出15
2.3常量和變量16
2.4走捷徑18
2.4.1一次聲明多個變量18
2.4.2增量並賦值操作符18
2.5數字遊戲19
2.6小結20
實驗:malacandra.go 21

第3章循環和分支22
3.1真或假23
3.2比較24
3.3使用if實現分支判斷25
3.4邏輯運算符26
3.5使用switch實現分支判斷28
3.6使用循環實現重複執行30
3.7小結31
實驗:guess.go 32

第4章變量作用域33
4.1審視作用域34
4.2簡短聲明35
4.3作用域的範圍37
4.4小結39
實驗:random-dates.go 39

第5章單元實驗:前往火星的航行票40

第2單元類型
第6章實數45
6.1聲明浮點類型變量46
6.1.1單精度浮點數47
6.1.2零值47
6.2打印浮點類型48
6.3浮點精確性49
6.4比較浮點數51
6.5小結51
實驗:piggy.go 52

第7章整數53
7.1聲明整數類型變量54
7.1.1為不同場合而設的整數類型54
7.1.2了解類型56
7.2為8位顏色使用uint8類型56
7. 3整數迴繞58
7.3.1聚焦二進制位58
7.3.2避免時間迴繞60
7.4小結61
實驗:piggy.go 62

第8章大數63
8.1擊中天花板63
8.2 big包65
8.3大小非同尋常的常量66
8.4小結68
實驗:cains.go 68

第9章多語言文本69
9.1聲明字符串變量70
9.2字符、代碼點、符文和字節71
9.3拉弦73
9.4使用凱撒加密法處理字符73
9.5將字符串解碼為符文76
9.6小結77
實驗:caesar.go 78
實驗:international.go 78

第10章類型轉換79
10.1類型不能混合使用79
10.2數字類型轉換81
10.3類型轉換的危險之處82
10.4字符串轉換83
10.5轉換布爾值85
10.6小結86
實驗:input.go 86

第11章單元實驗:維吉尼亞加密法87
實驗:decipher.go 88
實驗:cipher.go 89

第3單元構建塊
第12章函數93
12.1函數聲明94
12.2編寫函數97
12.3小結99
實驗:functions.go 99

第13章方法100
13.1聲明新類型101
13.2引入自定義類型102
13.3通過方法為類型添加行為103
13.4小結105
實驗:methods.go 106

第14章一等函數107
14.1將函數賦值給變量108
14.2將函數傳遞給其他函數109
14.3聲明函數類型110
14.4閉包和匿名函數111
14.5小結113
實驗:calibrate.go 114

第15章單元實驗:溫度表115

第4單元收集器
第16章勞苦功高的數組119
16.1聲明數組並訪問其元素119
16.2小心越界121
16.3使用複合字面量初始化數組121
16 .4迭代數組122
16.5數組被複製123
16.6由數組組成的數組125
16.7小結125
實驗:chess.go 126

第17章切片:指向數組的窗口127
17.1切分數組128
17.2切片的複合字面量130
17.3切片的威力130
17.4帶有方法的切片132
17.5小結133
實驗:terraform.go 133

第18章更大的切片134
18.1 append函數134
18.2長度和容量135
18.3詳解append函數136
18.4三索引切分操作137
18.5使用make函數對切片實行預分配138
18.6聲明可變參數函數139
18.7小結140
實驗:capacity.go 140

第19章無所不能的映射141
19.1聲明映射142
19.2映射不會被複製143
19.3使用make函數對映射實行預分配144
19.4使用映射進行計數145
19.5使用映射和切片實現數據分組146
19.6將映射用作集合147
19.7小結148
實驗:words.go 148

第20章單元實驗:切片人生150
20.1開天闢地150
20.1.1觀察世界151
20.1.2激活細胞151
20.2適者生存152
20.2.1存活還是死亡152
20. 2.2統計鄰近細胞152
20.2.3遊戲邏輯153
20.3平行世界153

第5單元狀態與行為
第21章結構157
21.1聲明結構157
21.2通過類型複用結構159
21.3通過複合字面量初始化結構159
21.4結構被複製161
21.5由結構組成的切片161
21.6將結構編碼為JSON 162
21.7使用結構標籤定制JSON 164
21.8小結165
實驗:landing.go 165

第22章Go沒有類166
22.1將方法綁定到結構166
22.2構造函數168
22.3類的替代品169
22.4小結171
實驗:landing.go 171
實驗:distance.go 171

第23章組合與轉發173
23.1合併結構174
23.2實現自動的轉發方法176
23.3命名衝突178
23.4小結180
實驗:gps.go 180

第24章接口181
24.1接口類型182
24.2探索接口185
24.3滿足接口187
24.4小結189
實驗:marshal.go 189
第25章單元實驗:火星上的動物避難所190

第6單元深入Go語言
第26章關於指針的二三事195
26.1 &和* 196
26.2指針的作用就是指向199
26.2 .1指向結構的指針201
26.2.2指向數組的指針202
26.3實現修改203
26.3.1將指針用作形參203
26.3.2指針接收者204
26.3.3內部指針206
26.3.4修改數組207
26.4隱式指針208
26.4.1映射也是指針208
26.4.2切片指向數組208
26.5指針和接口209
26.6明智地使用指針210
26.7小結211
實驗:turtle.go 211

第27章關於nil的紛紛擾擾212
27.1通向驚恐的nil指針213
27.2保護你的方法214
27.3 nil函數值216
27.4 nil切片217
27.5 nil映射218
27.6 nil接口218
27.7 nil之外的另一個選擇219
27.8小結220
實驗:knights.go 221

第28章孰能無過222
28.1處理錯誤223
28.2優雅的錯誤處理224
28.2.1文件寫入225
28.2.2關鍵字defer 227
28.2.3創造性的錯誤處理228
28.3新的錯誤229
28.3.1按需返回錯誤231
28.3.2自定義錯誤類型232
28.4不要驚恐235
28.4.1其他語言中的異常235
28.4. 2如何引發驚恐236
28.4.3處理驚恐237
28.5小結237
實驗:url.go 238

第29章單元實驗:數獨規則239

第7單元並發編程
第30章goroutine和並發243
30.1啟動goroutine 244
30.2不止一個goroutine 245
30.3通道247
30.4使用select處理多個通道249
30.5阻塞和死鎖251
30.6地鼠裝配線252
30.7小結256
實驗:remove-identical.go 256
實驗:split-words.go 256

第31章並發狀態257
31.1互斥鎖258
31.2長時間運行的工作進程262
31.3小結267
實驗:positionworker.go 268
實驗:rover.go 268

第32章單元實驗:尋找火星生命269
32.1可供活動的網格269
32.2報告發現270
結語:何去何從273
習題答案(網上下載)