Go並發編程實戰
汪明
買這商品的人也買了...
-
$403企業應用架構模式 (Patterns of Enterprise Application Architecture)
-
$480$379 -
$403Go Web 編程 (Go Web Programming)
-
$580$458 -
$880$695 -
$454Hyperledger Fabric 源代碼分析與深入解讀
-
$450$351 -
$580$493 -
$454Flutter 技術入門與實戰, 2/e
-
$403區塊鏈智能合約與 DApp 應用實戰
-
$454一本書讀懂區塊鏈(第2版)
-
$534$507 -
$551Go 語言編程之旅:一起用 Go 做項目
-
$780$663 -
$862分佈式人工智能:基於tensorflow、rtos與群體智能體系
-
$505自然語言處理實戰 : 利用 Python 理解、分析和生成文本
-
$560$442 -
$594$564 -
$680$578 -
$580$493 -
$560$504 -
$474$450 -
$450$356 -
$454Go 微服務實戰
-
$1,000$660
相關主題
商品描述
Go語言在多核硬件架構、超大規模分佈式計算集群和Web應用上具有明顯的優勢,目前Google、Facebook、AWS、Mozilla、七牛、阿裡、騰訊、百度、京東等大公司都已經開始使用Go語言開發其雲計算產品。 本書分為12章,第1章介紹Go語言的基本開發環境;第2章介紹Go語言的語法基礎;第3章介紹Go語言的函數;第4章介紹Go語言的流程控制與錯誤處理;第5章介紹Go語言中的結構體、數組、切片和字典等;第6章介紹Go語言中的指針;第7章介紹Go語言的面向對象用法;第8章介紹Go語言文件讀寫;第9章介紹Go語言的並發編程;第10章介紹Go語言的反射特性;第11章介紹Go語言如何構建Web服務;第12章用Go語言實現了一個並發聊天實戰項目。本書配套源碼、課件、開發環境和教學視頻。 本書內容詳盡、示例豐富,是一本Go語言的入門教材,非常適合有一定編程基礎的讀者學習使用。當然,本書也適合對編程感興趣的讀者學習。同時,本書也非常適合高等院校的師生學習閱讀,可作為高等院校電腦及相關專業的教材。
作者簡介
汪明,碩士,徐州軟件協會副理事長,某創業公司合夥人。從事軟件行業十餘年,發表論文數十篇,擅長JavaScript、C、Java、等傳統語言,也擅長TypeScript、Go等新語言。著有圖書《TypeScript實戰》。
目錄大綱
目 錄
第1章 搭建Go開發環境 1
1.1 Go的語言特性 1
1.2 安裝 4
1.2.1 Windows下安裝Go 5
1.2.2 Linux下安裝Go 7
1.3 配置環境變量 7
1.3.1 Windows下的環境變量配置 7
1.3.2 Linux下的環境變量配置 8
1.4 第一個Go程序 9
1.4.1 搭建本書項目代碼結構 9
1.4.2 創建並運行第一個Go程序 10
1.4.3 Go程序的編譯 11
1.4.4 Go的幫助系統 12
1.5 運行時 15
1.6 編譯器 16
1.6.1 詞法分析和語法分析 17
1.6.2 類型檢查 17
1.6.3 生成SSA中間代碼 17
1.6.4 生成機器代碼 18
1.7 Go程序的集成開發環境 18
1.8 演練:Exit自動退出程序 23
1.9 本章小結 25
第2章 Go程序的基礎要素 26
2.1 命名規範 26
2.2 包 27
2.2.1 包的導入 29
2.2.2 包的嵌套 32
2.2.3 特殊的init函數 33
2.3 數據類型 35
2.3.1 字符串類型 36
2.3.2 數值類型 38
2.3.3 布爾類型 39
2.3.4 派生類型 40
2.4 常量 40
2.5 變量 42
2.6 運算符 44
2.6.1 算術運算符 44
2.6.2 關系運算符 45
2.6.3 邏輯運算符 46
2.6.4 位運算符 47
2.6.5 賦值運算符 48
2.6.6 特殊運算符 49
2.6.7 運算符的優先級 50
2.7 註釋 50
2.8 類型轉換 51
2.9 演練:原子計算器 54
2.10 小結 55
第3章 函數 56
3.1 函數的結構 57
3.1.1 Go語言函數的基本結構 57
3.1.2 函數中的變量存儲(堆棧) 58
3.1.3 函數返回函數 60
3.2 函數返回多個值的特性 61
3.3 作用域 62
3.4 匿名函數 63
3.4.1 匿名函數的即時調用 63
3.4.2 匿名函數的重復調用 64
3.5 變長函數 65
3.6 遞歸函數 66
3.6.1 使用遞歸函數求解斐波那契數列 66
3.6.2 使用循環代替遞歸的方法 67
3.7 回調函數 68
3.8 閉包 70
3.9 defer關鍵字 71
3.10 演練:原子計算器2.0迭代版 72
3.11 小結 74
第4章 流程控制與錯誤處理 75
4.1 if判斷 75
4.1.1 if語句的基本語法 75
4.1.2 if語句中的變量作用域 77
4.2 switch條件判斷語句 78
4.2.1 switch語句中的基本語法 78
4.2.2 fallthrough穿透 80
4.2.3 case多個表達式 81
4.2.4 switch省略判斷條件 82
4.3 for循環語句 83
4.4 break與continue 85
4.5 Go的錯誤處理機制 86
4.5.1 error 86
4.5.2 panic 87
4.6 演練:哲學的三段論 88
4.7 小結 93
第5章 復合數據類型 94
5.1 type關鍵字 94
5.2 struct類型 97
5.2.1 聲明struct 98
5.2.2 struct作為函數的參數 100
5.2.3 給struct定義方法 102
5.2.4 struct嵌套 102
5.3 匿名struct類型 103
5.4 數組 106
5.4.1 創建數組 106
5.4.2 數組作為函數的參數 108
5.4.3 二維數組 110
5.4.4 數組元素是struct 111
5.5 切片 112
5.5.1 切片的內部實現 113
5.5.2 切片的切割 115
5.5.3 切片的擴容 118
5.5.4 切片作為函數的參數 120
5.6 字典 122
5.6.1 創建字典 122
5.6.2 字典作為函數的參數 123
5.7 range關鍵字 124
5.8 演練:內存數據庫 126
5.9 小結 135
第6章 指針 136
6.1 內存地址 136
6.2 指針的應用 141
6.2.1 什麽是指針 141
6.2.2 聲明指針 142
6.2.3 關鍵字new 142
6.2.4 獲取元素地址 143
6.2.5 unsafe包 145
6.2.6 指針的指針 147
6.3 野指針 148
6.4 值傳參與地址傳參 149
6.5 演練:Go單向鏈表的實現 151
6.6 小結 157
第7章 面向對象和接口 158
7.1 結構體實現封裝 158
7.2 組合實現繼承 161
7.3 接口實現 163
7.4 類型判斷與斷言 166
7.5 接口實現多態 169
7.6 演練:SQL生成器的實現 171
7.7 小結 179
第8章 文件讀寫 180
8.1 文件讀取 180
8.1.1 整塊讀取 180
8.1.2 分字節讀取 183
8.1.3 分行讀取 185
8.2 文件寫入 187
8.2.1 整塊寫入 187
8.2.2 分字節寫入 189
8.2.3 分行寫入 191
8.3 自己開發io包下的讀寫接口 192
8.4 目錄操作 195
8.4.1 目錄的基本操作 195
8.4.2 目錄的遍歷 197
8.5 演練:property配置文件的操作 198
8.6 小結 200
第9章 圖解並發編程 201
9.1 單核並發 202
9.2 鎖機制 207
9.3 並行——多核並行 211
9.4 Go調度器 216
9.5 協程 218
9.6 協程間通信 223
9.6.1 共享變量 223
9.6.2 通道 224
9.7 無緩沖通道 225
9.8 有緩沖通道 232
9.9 通道和緩沖生成I/O流 235
9.10 協程調試 236
9.10.1 死鎖 236
9.10.2 數據競爭 237
9.10.3 協程泄漏 240
9.11 協程性能測試 244
9.11.1 Go語言自帶的測試工具 244
9.11.2 性能測試工具pprof 246
9.11.3 追蹤分析工具go tool trace 249
9.12 演練:單機MapReduce單詞統計 252
9.13 小結 258
第10章 反射 259
10.1 反射的概念和基本用法 259
10.2 獲取結構體字段和方法 265
10.3 反射動態修改值 268
10.4 獲取結構體字段標識 270
10.5 判斷是否實現接口 272
10.6 動態調用方法 274
10.7 演練:ORM基本實現 276
10.8 小結 282
第11章 Go的Web服務 283
11.1 HTTP/HTTPS 283
11.1.1 HTTP協議原理 284
11.1.2 HTTPS協議原理 285
11.1.3 Go語言的net/http包 286
11.1.4 使用Go語言構建HTTP Web服務程序 287
11.2 WebSocket 294
11.2.1 WebSocket協議原理 294
11.2.2 使用Go語言實現WebSocket服務端 296
11.2.3 使用Go語言實現WebSocket客戶端 298
11.3 SSE 299
11.3.1 SSE技術原理 299
11.3.2 使用Go語言實現SSE通信 300
11.4 演練:構建自己的Web服務器 305
11.5 小結 313
第12章 實戰:並發聊天 314
12.1 需求描述 314
12.2 需求分析 315
12.3 技術選型 316
12.4 架構 317
12.5 代碼分析 319
12.6 小結 334