《Go程式設計語言》電子書,建議儲存下來

書籍簡介

《Go程式設計語言》電子書,建議儲存下來

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