書籍簡介
Go程式設計語言
作者
: 艾倫 A。 A。 多諾萬
出版社:
機械工業出版社
原作名:
The Go Programming Language
譯者
: 李道兵 / 高博 / 龐向才 / 金鑫鑫 / 林齊斌
出版年:
2017-5
頁數:
286
定價:
79
叢書:
計算機科學叢書
ISBN:
9787111558422
獲取方法
關注微信公眾號:
申霖
,傳送:
0308
目錄· · · · · ·
出版者的話
譯者序
前言
第1章 入門 1
1。1 hello,world 1
1。2 命令列引數 3
1。3 找出重複行 6
1。4 GIF動畫 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。3 new函式 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。2 Unicode 49
3。5。3 UTF-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。2 slice 63
4。2。1 append函式 66
4。2。2 slice就地修改 69
4。3 map 71
4。4 結構體 76
4。4。1 結構體字面量 78
4。4。2 結構體比較 80
4。4。3 結構體巢狀和匿名成員 80
4。5 JSON 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。7 http。Handler介面 148
7。8 error介面 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。1 goroutine 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。8 goroutine與執行緒 218
9。8。1 可增長的棧 219
9。8。2 goroutine排程 219
9。8。3 GOMAXPROCS 219
9。8。4 goroutine沒有標識 220
第10章 包和go工具 221
10。1 引言 221
10。2 匯入路徑 221
10。3 包的宣告 222
10。4 匯入宣告 223
10。5 空匯入 223
10。6 包及其命名 225
10。7 go工具 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。1 go test工具 235
11。2 Test函式 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。4 Benchmark函式 250
11。5 效能剖析 252
11。6 Example函式 254
第12章 反射 256
12。1 為什麼使用反射 256
12。2 reflect。Type和reflect。Value 257
12。3 Display:一個遞迴的值顯示器 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。1 unsafe。Sizeof、Alignof 和Offsetof 276
13。2 unsafe。Pointer 278
13。3 示例:深度相等 280
13。4 使用cgo呼叫C程式碼 282
13。5 關於安全的注意事項 286