本書由《C程序設計語言》的作者Kernighan和谷歌公司Go團隊主管AlanDonovan聯袂撰寫,是學習Go語言程序設計指南。本書共13章,主要內容包括:Go的基礎知識、基本結構、基本數據類型、復合數據類型、函數、方法、接口、goroutine、通道、共享變量的并發性、包、go工具、測試、反射等。本書適合作為計算機相關專業的教材,也可供Go語言愛好者閱讀。
Alan Donovan 是谷歌公司基礎架構部的主管工程師,專長是軟件開發工具。自2012年,他一直工作的Got團隊,設計用于靜態分析的庫和工具。他是”oracle”、“godoc –analysis”、“eg”和“gorename”的作者。
Brianv Kernighan是《C程序設計語言》的作者之一,他與C語言的發明人Dennis Ritchie共同合作了這本書,K&R就是兩人名字的縮寫。他是一位加拿大計算機科學家,在貝爾實驗室,他與Unix的創造者Ken Thompson以及Dennis Ritchie一起工作,同時它也是開發Unix的主要貢獻者。他是 AWK 和 AMPL 編程語言的作者之一,AWK中的K說的就是Kernighan。Brian Kernighan現在是普林斯頓大學計算機學院的教授,同時,他也是本科學部的代表。
目錄
The Go Programming Language
出版者的話
譯者序
前言
第1章入門 1
1.1hello,world 1
1.2命令行參數 3
1.3找出重復行 6
1.4GIF動畫 10
1.5獲取一個URL 12
1.6并發獲取多個URL 13
1.7一個Web服務器 14
1.8其他內容 17
第2章程序結構 20
2.1名稱 20
2.2聲明 21
2.3變量 22
2.3.1短變量聲明 22
2.3.2指針 23
2.3.3new函數 25
2.3.4變量的生命周期 26
2.4賦值 27
2.4.1多重賦值 27
2.4.2可賦值性 28
2.5類型聲明 29
2.6包和文件 30
2.6.1導入 31
2.6.2包初始化 33
2.7作用域 34
第3章基本數據 38
3.1整數 38
3.2浮點數 42
3.3復數 45
3.4布爾值 47
3.5字符串 47
3.5.1字符串字面量 49
3.5.2Unicode 49
3.5.3UTF-8 50
3.5.4字符串和字節slice 53
3.5.5字符串和數字的相互轉換 56
3.6常量 56
3.6.1常量生成器iota 57
3.6.2無類型常量 59
第4章復合數據類型 61
4.1數組 61
4.2slice 63
4.2.1append函數 66
4.2.2slice就地修改 69
4.3map 71
4.4結構體 76
4.4.1結構體字面量 78
4.4.2結構體比較 80
4.4.3結構體嵌套和匿名成員 80
4.5JSON 82
4.6文本和HTML模板 87
第5章函數 92
5.1函數聲明 92
5.2遞歸 93
5.3多返回值 96
5.4錯誤 98
5.4.1錯誤處理策略 99
5.4.2文件結束標識 101
5.5函數變量 102
5.6匿名函數 104
5.7變長函數 110
5.8延遲函數調用 111
5.9宕機 115
5.10恢復 118
第6章方法 120
6.1方法聲明 120
6.2指針接收者的方法 122
6.3通過結構體內嵌組成類型 124
6.4方法變量與表達式 127
6.5示例:位向量 128
6.6封裝 130
第7章接口 133
7.1接口即約定 133
7.2接口類型 135
7.3實現接口 136
7.4使用flag.Value來解析參數 139
7.5接口值 141
7.6使用sort.Interface來排序 144
7.7http.Handler接口 148
7.8error接口 152
7.9示例:表達式求值器 154
7.10類型斷言 160
7.11使用類型斷言來識別錯誤 161
7.12通過接口類型斷言來查詢特性 162
7.13類型分支 164
7.14示例:基于標記的XML解析 166
7.15一些建議 168
第8章goroutine和通道 170
8.1goroutine 170
8.2示例:并發時鐘服務器 171
8.3示例:并發回聲服務器 174
8.4通道 176
8.4.1無緩沖通道 177
8.4.2管道 178
8.4.3單向通道類型 180
8.4.4緩沖通道 181
8.5并行循環 183
8.6示例:并發的Web爬蟲 187
8.7使用select多路復用 190
8.8示例:并發目錄遍歷 192
8.9取消 195
8.10示例:聊天服務器 198
第9章使用共享變量實現并發 201
9.1競態 201
9.2互斥鎖:sync.Mutex 205
9.3讀寫互斥鎖:sync.RWMutex 208
9.4內存同步 208
9.5延遲初始化:sync.Once 210
9.6競態檢測器 212
9.7示例:并發非阻塞緩存 212
9.8goroutine與線程 218
9.8.1可增長的棧 219
9.8.2goroutine調度 219
9.8.3GOMAXPROCS 219
9.8.4goroutine沒有標識 220
第10章包和go工具 221
10.1引言 221
10.2導入路徑 221
10.3包的聲明 222
10.4導入聲明 223
10.5空導入 223
10.6包及其命名 225
10.7go工具 226
10.7.1工作空間的組織 227
10.7.2包的下載 228
10.7.3包的構建 229
10.7.4包的文檔化 231
10.7.5內部包 232
10.7.6包的查詢 233
第11章測試 235
11.1go test工具 235
11.2Test函數 236
11.2.1隨機測試 239
11.2.2測試命令 240
11.2.3白盒測試 242
11.2.4外部測試包 245
11.2.5編寫有效測試 246
11.2.6避免脆弱的測試 247
11.3覆蓋率 248
11.4Benchmark函數 250
11.5性能剖析 252
11.6Example函數 254
第12章反射 256
12.1為什么使用反射 256
12.2reflect.Type和reflect.Value 257
12.3Display:一個遞歸的值顯示器 259
12.4示例:編碼S表達式 263
12.5使用reflect.Value來設置值 266
12.6示例:解碼S表達式 268
12.7訪問結構體字段標簽 271
12.8顯示類型的方法 273
12.9注意事項 274
第13章低級編程 276
13.1unsafe.Sizeof、Alignof 和Offsetof 276
13.2unsafe.Pointer 278
13.3示例:深度相等 280
13.4使用cgo調用C代碼 282
13.5關于安全的注意事項 286
剛開始看,go語言不錯
感覺不錯……
go語言大作,值得學習
紙質真是非常一般
快遞有點慢 書質量還可以
性價比超高
內容不錯 隨手看了看
還行 沒想想的厚 略薄
翻譯什么的就算了,還沒頭沒尾的,也不適合學習。這書的讀者默認為已經是編程老手,不然不是你有點基礎就可以學的。
絕對正版書,很不錯的資料,宅急送快遞給力
物流慢,包裝破損。物流慢,包裝破損。物流慢,包裝破損。物流慢,包裝破損。物流慢,包裝破損。物流慢,包裝破損。
那翻譯真是有夠爛的,改排名那么前也是醉了,爛,就一個字,真心惡心翻譯
物流速度快
不容易閱讀,也許是翻譯的不太好
不錯,先看看
很多東西解釋的很詳細。很好。
緊跟技術發展
go語言圣經,書不錯
特別好的書籍,值得推薦哦!
第一次看見go 語言就喜歡了他的預發?,F在買書來查詢
經典C語言《C程序設計語言》作者寫的書,必定也是經典的書
書不錯,內容很全面,對go做了深入說明,有很多編碼易錯的注意事項,與其他語法差異處也有詳細說明