Go語言從入門到精通

明日科技

  • 出版商: 清華大學
  • 出版日期: 2024-03-01
  • 定價: $539
  • 售價: 8.5$458
  • 語言: 簡體中文
  • ISBN: 7302651655
  • ISBN-13: 9787302651659
  • 下單後立即進貨 (約4週~6週)

  • Go語言從入門到精通-preview-1
  • Go語言從入門到精通-preview-2
  • Go語言從入門到精通-preview-3
Go語言從入門到精通-preview-1

商品描述

《Go語言從入門到精通》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了Go語言的基礎、進階提高和高級應用知識。全書分為4篇,共19章,包括初識Go語言、Go語言基礎、Go語言基本數據類型與運算符、流程控制、復合數據類型、函數、指針、結構體、接口、錯誤處理、並發編程、包管理、標準庫、編譯與測試工具、反射、MySQL數據庫編程、文件處理、網絡編程和Go語言在爬蟲中的應用等內容。所有知識都結合具體實例進行講解,涉及的程序代碼給出了詳細的註釋。全書共計98個應用實例,學練結合,讀者可以輕松領會Go語言的開發精髓,快速提升開發技能。

目錄大綱

第1篇 基礎知識

第1章 初識Go語言 2

視頻講解:24分鐘

1.1 Go語言簡介 2

1.1.1 為什麽要學習Go語言 2

1.1.2 Go語言的特性 3

1.1.3 Go語言與並發 3

1.1.4 Go語言的應用 4

1.2 Go語言開發環境 4

1.2.1 下載Go語言開發包 4

1.2.2 安裝Go語言開發包 6

1.2.3 配置Go語言環境變量 8

1.2.4 測試Go語言開發包是否正常運行 11

1.3 Go語言開發工具 11

1.3.1 下載VS Code 12

1.3.2 安裝VS Code 13

1.3.3 漢化VS Code 15

1.3.4 在VS Code中安裝Go語言插件 16

1.4 第一個Go語言程序 18

1.4.1 創建Go項目和Go文件 18

1.4.2 編寫第一個Go語言程序 24

1.4.3 運行Go語言程序 24

1.5 要點回顧 27

第2章 Go語言基礎 28

視頻講解:17分鐘

2.1 關鍵字和標識符 28

2.1.1 關鍵字 28

2.1.2 標識符命名規則 29

2.1.3 空白標識符 30

2.1.4 導出標識符 30

2.1.5 預定義標識符 32

2.2 程序的基本結構 32

2.3 作用域 33

2.4 註釋 34

2.5 要點回顧 34

第3章 Go語言基本數據類型與運算符 35

視頻講解:36分鐘

3.1 Go語言變量 35

3.1.1 變量的聲明 35

3.1.2 變量的初始化 37

3.1.3 匿名變量 39

3.1.4 變量的作用域 39

3.2 基礎類型 41

3.2.1 數值類型 41

3.2.2 布爾類型 42

3.2.3 字符串類型及其操作 43

3.3 類型轉換 48

3.4 自定義類型 50

3.5 有類型的常量 51

3.6 枚舉 52

3.7 運算符 53

3.7.1 算術運算符 53

3.7.2 關系運算符 53

3.7.3 邏輯運算符 54

3.7.4 位運算符 54

3.7.5 復合賦值運算符 55

3.7.6 運算符優先級 57

3.8 要點回顧 58

第4章 流程控制 59

視頻講解:28分鐘

4.1 條件判斷語句 59

4.1.1 if語句 59

4.1.2 switch語句 64

4.2 循環語句 68

4.2.1 for循環 68

4.2.2 for-range循環 71

4.2.3 循環嵌套 73

4.3 循環控制語句 74

4.3.1 break語句 74

4.3.2 continue語句 75

4.3.3 goto語句 77

4.4 要點回顧 77

第5章 復合數據類型 78

視頻講解:38分鐘

5.1 數組 78

5.1.1 數組的聲明 78

5.1.2 數組的初始化 79

5.1.3 數組元素的訪問 81

5.1.4 二維數組 82

5.2 切片 84

5.2.1 定義切片 85

5.2.2 len()函數和cap()函數 86

5.2.3 append()函數 87

5.2.4 copy()函數 88

5.2.5 空切片 89

5.2.6 切片的訪問 89

5.2.7 刪除切片 90

5.3 映射 91

5.3.1 定義映射 91

5.3.2 遍歷映射 93

5.3.3 獲取映射元素 94

5.3.4 刪除映射元素 94

5.4 要點回顧 95

第2篇 進階提高

第6章 函數 98

視頻講解:46分鐘

6.1 函數定義和調用 98

6.1.1 函數的定義 98

6.1.2 函數的調用 99

6.2 函數的參數 100

6.2.1 形式參數和實際參數 100

6.2.2 值傳遞和引用傳遞 102

6.2.3 可變參數 103

6.2.4 傳遞數組 104

6.2.5 傳遞切片 105

6.3 函數的返回值 105

6.3.1 返回單個值 105

6.3.2 返回多個值 107

6.4 函數的嵌套調用 109

6.5 函數變量 110

6.6 匿名函數 111

6.6.1 在定義時直接調用 112

6.6.2 將匿名函數賦值給變量 112

6.6.3 作為回調函數 113

6.7 閉包 114

6.8 遞歸函數 115

6.9 函數的延遲調用 117

6.9.1 多個defer語句的執行順序 117

6.9.2 延遲函數的參數 117

6.9.3 匿名函數的延遲調用 118

6.10 要點回顧 120

第7章 指針 121

視頻講解:20分鐘

7.1 關於指針 121

7.1.1 什麽是指針 121

7.1.2 “取地址”操作 122

7.2 指針的使用方法 123

7.2.1 聲明指針變量 123

7.2.2 初始化指針變量 123

7.2.3 空指針 125

7.2.4 獲取指針指向的變量的值 126

7.2.5 修改指針指向的變量的值 127

7.3 指針的其他應用 129

7.3.1 指針數組 129

7.3.2 指向指針的指針變量 130

7.4 要點回顧 131

第8章 結構體 132

視頻講解:26分鐘

8.1 結構體基本用法 132

8.1.1 定義結構體 132

8.1.2 實例化結構體 133

8.2 匿名成員和匿名結構體 135

8.2.1 匿名成員 135

8.2.2 匿名結構體 136

8.3 結構體的嵌套 137

8.4 構造函數 141

8.4.1 不帶參數的構造函數 141

8.4.2 帶參數的構造函數 142

8.4.3 為嵌套的結構體使用構造函數 142

8.5 方法 143

8.5.1 值接收者方法 143

8.5.2 指針接收者方法 144

8.6 要點回顧 147

第9章 接口 148

視頻講解:27分鐘

9.1 接口的聲明 148

9.2 接口的實現 149

9.3 類型斷言 150

9.4 Interface接口 152

9.5 空接口類型 155

9.5.1 使用空接口保存值 155

9.5.2 從空接口中獲取值 157

9.5.3 比較空接口保存的值 158

9.6 類型分支 159

9.7 接口的嵌套 160

9.8 要點回顧 162

第10章 錯誤處理 163

視頻講解:22分鐘

10.1 error接口類型 163

10.2 自定義錯誤信息 164

10.2.1 使用errors包中的New函數 164

10.2.2 使用error接口自定義Error()函數 165

10.2.3 使用fmt包的Errorf()函數 166

10.3 Error嵌套 168

10.3.1 基本用法 168

10.3.2 Unwrap()函數 168

10.3.3 Is()函數 169

10.3.4 As()函數 169

10.4 宕機和宕機恢復 170

10.4.1 宕機(panic) 170

10.4.2 宕機恢復(recover) 172

10.5 要點回顧 174

第11章 並發編程 175

視頻講解:31分鐘

11.1 並發概述 175

11.2 goroutine 176

11.2.1 為普通函數創建goroutine 176

11.2.2 為匿名函數創建goroutine 179

11.3 channel(通道) 180

11.3.1 通道的聲明和創建 181

11.3.2 通道的基本操作 182

11.3.3 單向通道 184

11.3.4 無緩沖的通道 185

11.3.5 有緩沖的通道 186

11.4 使用select處理通道 187

11.5 競爭狀態 188

11.6 死鎖、活鎖和飢餓 189

11.6.1 死鎖 189

11.6.2 活鎖 190

11.6.3 飢餓 190

11.7 加鎖機制 190

11.8 要點回顧 193

第3篇 高級應用

第12章 包管理 196

視頻講解:16分鐘

12.1 包的基本概念 196

12.1.1 包的導入 197

12.1.2 包的導入路徑 197

12.2 GOPATH 198

12.3 常用內置包 199

12.4 包的基本使用 201

12.4.1 package(創建包) 201

12.4.2 在代碼中使用其他代碼 202

12.5 自定義包 203

12.6 包管理工具 204

12.7 要點回顧 205

第13章 標準庫 206

視頻講解:26分鐘

13.1 IO操作 206

13.1.1 io庫 206

13.1.2 os庫 207

13.1.3 ioutil庫 208

13.1.4 bufio庫 210

13.1.5 errors庫 211

13.2 記錄日誌 212

13.2.1 log庫中的函數 212

13.2.2 標準log配置 213

13.2.3 日誌前綴配置 214

13.2.4 把日誌輸出到文件中 215

13.3 解析JSON 215

13.3.1 解碼JSON 215

13.3.2 編碼JSON 216

13.4 時間和日期 217

13.4.1 時間的獲取 217

13.4.2 操作時間的函數 219

13.4.3 時間格式化 220

13.4.4 解析格式化的時間字符串 220

13.5 要點回顧 221

第14章 編譯與測試工具 222

視頻講解:18分鐘

14.1 go build命令 222

14.2 go clean命令 224

14.3 go run命令 224

14.4 go fmt命令 225

14.5 go install命令 226

14.6 go get命令 227

14.7 go generate命令 227

14.8 go test命令 228

14.8.1 單元測試 228

14.8.2 基準測試 229

14.9 go pprof命令 230

14.10 要點回顧 230

第15章 反射 231

視頻講解:25分鐘

15.1 反射概述 231

15.1.1 reflect.TypeOf()函數 231

15.1.2 reflect.ValueOf()函數 232

15.2 反射三定律 233

15.2.1 接口變量轉反射對象 233

15.2.2 反射對象轉接口變量 234

15.2.3 修改反射對象的值 235

15.3 反射的類型與種類 237

15.4 Go語言結構體標簽 239

15.4.1 結構體標簽的使用 239

15.4.2 結構體標簽的獲取 240

15.5 通過類型信息創建實例 241

15.6 通過反射調用函數 242

15.7 要點回顧 243

第16章 MySQL數據庫編程 244

視頻講解:18分鐘

16.1 下載、安裝MySQL 244

16.1.1 下載MySQL 244

16.1.2 安裝MySQL 246

16.1.3 啟動MySQL 253

16.2 下載go-mysql驅動程序 253

16.3 操作MySQL數據庫 255

16.3.1 連接MySQL數據庫 256

16.3.2 新建數據表 257

16.3.3 插入數據 258

16.3.4 查詢數據 259

16.3.5 修改數據 261

16.3.6 刪除數據 262

16.4 要點回顧 263

第17章 文件處理 264

視頻講解:23分鐘

17.1 文本文件的寫入、追加、讀取操作 264

17.2 二進制文件的寫入、讀取操作 267

17.2.1 gob格式 267

17.2.2 自定義二進制格式 269

17.3 JSON文件的寫入、讀取操作 271

17.4 XML文件的寫入、讀取操作 273

17.5 zip文件的寫入、讀取操作 275

17.6 文件鎖操作 277

17.7 要點回顧 279

第18章 網絡編程 280

視頻講解:15分鐘

18.1 Socket編程 280

18.1.1 什麽是Socket 281

18.1.2 Dial()函數 281

18.2 TCP Socket 282

18.2.1 建立TCP連接 283

18.2.2 實現交互通信 285

18.3 UDP Socket 287

18.3.1 UDP服務器端 287

18.3.2 UDP客戶端 288

18.4 HTTP編程 289

18.4.1 HTTP客戶端 289

18.4.2 HTTP服務端 290

18.5 要點回顧 291

第4篇 項目實戰

第19章 Go語言在爬蟲中的應用 294

視頻講解:21分鐘

19.1 需求分析 294

19.2 程序設計 294

19.2.1 程序目標 294

19.2.2 功能結構 295

19.2.3 業務流程 295

19.3 技術準備—go-colly框架 296

19.3.1 go-colly框架的特性 296

19.3.2 go-colly框架的下載 296

19.3.3 go-colly框架的實現過程 297

19.3.4 go-colly框架的應用實例 298

19.4 抓取指定連接的網頁內容 300

19.5 將抓取的網頁內容存儲在文件中 301

19.6 把爬蟲程序設置成Web服務 303

19.7 要點回顧 306