Go程式設計語言

Go程式設計語言

《Go程式設計語言》是2017年機械工業出版社出版的圖書,作者是艾倫A.A.多諾萬。

基本介紹

  • 中文名:Go程式設計語言
  • 作者:艾倫A.A.多諾萬
  • 出版社:機械工業出版社
  • ISBN:9787111558422
內容簡介,圖書目錄,

內容簡介

本書由《C程式設計語言》的作者Kernighan和谷歌公司Go團隊主管AlanDonovan聯袂撰寫,是學習Go語言程式設計指南。本書共13章,主要內容包括:Go的基礎知識、基本結構、基本數據類型、複合數據類型、函式、方法、接口、goroutine、通道、共享變數的並發性、包、go工具、測試、反射等。本書適合作為計算機相關專業的教材,也可供Go語言愛好者閱讀。

圖書目錄

The Go Programming Language
出版者的話
譯者序
前言
第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

相關詞條

熱門詞條

聯絡我們