Go語言第一課

白明

  • 出版商: 人民郵電
  • 出版日期: 2025-08-01
  • 售價: $480
  • 語言: 簡體中文
  • 頁數: 293
  • ISBN: 7115649898
  • ISBN-13: 9787115649898
  • 相關分類: Go 程式語言
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書由淺入深地介紹了Go編程語言。首先,本書揭示了Go的發展歷程和設計哲學,引導讀者了解Go的核心理念;其次,詳細介紹了建立Go開發環境、編寫Go程序、Go的代碼組織和依賴管理等內容,為讀者夯實編程基礎;再次,重點講解了Go的語法特性,包括變量與類型、基本數據類型、常量、覆合數據類型、指針類型、控制結構、函數、錯誤處理、方法、接口類型、並發編程、泛型等,確保讀者能夠掌握Go的覆雜特性; ,介紹了Go的測試,幫助讀者確保代碼質量和性能。 本書結構清晰,內容豐富,適合對Go感興趣並希望系統學習的讀者閱讀和參考。

作者簡介

白明(Tony Bai),架構師,Go技術專家,tonybai..com博客博主,GopherChina大會講師。擁有超過二十年的IT從業經驗,對高性能、高並發系統架構有深入的研究與豐富的實踐經驗。 早在2011年Go還處於早期發展階段時,他便開始關註並實踐該語言,是 探索和推廣Go的先行者之一。多年來,他成功地將Go應用於電信、智能網聯汽車等多個前沿領域的大型項目中,帶領團隊構建並交付了多個市場 的Go應用系統,其中包括占據移動市場重要份額的短信網關、高性能的5G消息網關,以及應用於多家知名車企量產車型的車雲平臺等。 與此同時,他堅持寫作,通過技術博客、Gopher日報、圖書《Go語言精進之路》以及在極客時間開設的廣受歡迎的專欄《Go語言 課》《Go語言進階課》等,系統地分享了Go知識與實戰經驗,深刻影響了數萬名開發者。

目錄大綱

第 1章 Go的那些事兒 1
1.1 Go的歷史與現狀 1
1.1.1 Go是怎樣誕生的 1
1.1.2 從“三人行”到“眾人拾柴” 3
1.1.3 Go是否值得我們學習 6
1.1.4 學習Go的 時機 8
1.2 Go的設計哲學 8
1.2.1 簡單 9
1.2.2 顯式 10
1.2.3 組合 11
1.2.4 並發 12
1.2.5 面向工程 13
1.3 本章小結 15
第 2章 建立Go開發環境 16
2.1 選擇Go版本 16
2.2 安裝Go 17
2.2.1 使用安裝包安裝 Go 18
2.2.2 使用預編譯二進制包安裝Go 20
2.2.3 使用go install命令安裝Go 23
2.2.4 基於源碼編譯安裝Go 24
2.2.5 安裝和管理多個Go版本 25
2.3 配 Go 27
2.4 在線體驗Go 28
2.5 本章小結 29
第3章 第 一個Go程序 31
3.1 “hello, world”示例程序 31
3.1.1 創建helloworld文件夾 31
3.1.2 編寫並運行第 一個Go程序 32
3.2 Go程序的結構 33
3.3 編譯Go程序 35
3.4 第 一個Go module 36
3.5 本章小結 38
第4章Go包、模塊與代碼組織結構 40
4.1 Go包 41
4.1.1 Go包的定義與導入 41
4.1.2 Go包的初始化函數 43
4.1.3Go程序的編譯單元 44
4.2 Go module 45
4.3 Go項目的代碼組織結構 46
4.3.1 創世項目 46
4.3.2 社區共識 48
4.3.3 官方指南 52
4.4 本章小結 53
第5章 Go的依賴管理 54
5.1 Go依賴管理模式的演化 54
5.2 基於Go module的依賴管理 55
5.3 常見的Go module操作 58
5.3.1 添加依賴 58
5.3.2 升級/降級依賴的版本 59
5.3.3 添加一個主版本號大於1的依賴 61
5.3.4 升級依賴版本到一個不兼容版本 62
5.3.5 移除依賴 62
5.3.6 兼容 vendor 63
5.3.7 替換依賴 64
5.4 本章小結 65
第6章 變量與類型 66
6.1 變量與類型的意義 66
6.2 變量聲明 68
6.2.1 未顯式賦予初值 70
6.2.2 變量聲明塊 70
6.2.3 省略類型信息的聲明 71
6.2.4 短變量聲明 72
6.2.5 包級變量的聲明形式 72
6.2.6 局部變量的聲明形式 75
6.3 變量的作用域 76
6.4本章小結 82
第7章 基本數據類型 84
7.1 布爾類型 84
7.2 數值類型 85
7.2.1 整型 85
7.2.2 浮點類型 88
7.2.3 覆數類型 90
7.3 字符串類型 91
7.3.1 原生支持字符串類型的好處 91
7.3.2 Go 字符串的組成 93
7.3.3 Go 字符串類型的內部表示 96
7.3.4 Go 字符串類型的常見操作 97
7.4 本章小結 100
第8章 常量 101
8.1 常量基礎 101
8.2 Go原生支持常量的好處 102
8.3 Go常量的創新 103
8.3.1 無類型常量 103
8.3.2 隱式轉型 104
8.3.3 實現枚舉 105
8.4 本章小結 108
第9章 覆合數據類型 109
9.1 數組:同構靜態覆合類型 109
9.1.1 數組的基本特性 109
9.1.2 多維數組 111
9.2 切片:同構動態覆合類型 112
9.2.1 切片基礎 112
9.2.2 切片類型的實現 113
9.2.3 切片的擴容 116
9.3 map類型 117
9.3.1 map基礎 118
9.3.2 map變量的聲明和初始化 119
9.3.3 map的基本操作 120
9.3.4 map變量的傳遞開銷 124
9.3.5 map的並發訪問 125
9.4 結構體類型:建立對真實世界的抽象 125
9.4.1 定義一個新類型 125
9.4.2 定義結構體類型 126
9.4.3 結構體變量的聲明與初始化 129
9.5 本章小結 132
第 10章 指針類型 133
10.1 什麼是指針類型 133
10.2 指向指針類型變量的指針 137
10.3 指針用途與使用限制 139
10.4 本章小結 142
第 11章 控制結構 143
11.1 if語句 143
11.1.1 認識if語句 143
11.1.2 支持聲明if語句的自用變量 146
11.1.3 if語句的“快樂路徑”原則 147
11.2 for語句 148
11.2.1 for語句的經典使用形式 148
11.2.2 for range循環形式 150
11.2.3 帶label的continue語句 154
11.2.4 break語句的使用 155
11.2.5 循環變量重用 156
11.3 switch語句 159
11.3.1 認識switch語句 159
11.3.2 switch語句的靈活性 161
11.3.3 type switch 164
11.4 本章小結 166
第 12章 函數 167
12.1 Go函數基礎 167
12.1.1 函數聲明 167
12.1.2 函數參數 170
12.1.3 函數返回值 171
12.2 函數是“一等公民” 173
12.3 defer:簡化函數實現 175
12.3.1 認識defer 176
12.3.2 使用defer的註意事項 177
12.4 本章小結 181
第 13章 錯誤處理 182
13.1 Go的錯誤處理 182
13.1.1 Go的錯誤處理機制 182
13.1.2 錯誤值構造與檢視 183
13.2 Go的異常處理 193
13.2.1 認識panic 193
13.2.2 如何應對panic 195
13.3 本章小結 198
第 14章 方法 199
14.1 認識Go方法 199
14.1.1 方法的聲明 199
14.1.2 方法的本質 202
14.2 選擇receiver參數類型 204
14.2.1 receiver參數類型對Go方法的影響 204
14.2.2 選擇receiver參數類型的原則 206
14.3 方法集合 207
14.3.1 為什麼要有方法集合 207
14.3.2 方法集合的定義 208
14.3.3 選擇receiver參數類型的第三個原則 209
14.4 類型嵌入模擬“實現繼承” 209
14.5 本章小結 210
第 15章 接口類型 212
15.1 接口類型基礎 212
15.1.1 接口類型的定義 212
15.1.2 盡量定義“小接口” 216
15.2 接口類型的實現 217
15.2.1 接口的靜態特性與動態特性 218
15.2.2 nil的error值不等於nil 219
15.2.3 接口類型變量的內部表示 220
15.3 使用接口時的註意事項 223
15.4 本章小結 224
第 16章 並發編程 226
16.1 什麼是並發 226
16.2 Go的並發方案 230
16.2.1 goroutine的基本用法 230
16.2.2 CSP並發模型 231
16.3 goroutine間的通信 233
16.3.1 作為“一等公民”的channel 233
16.3.2 channel與select結合使用的慣用法 237
16.4 本章小結 238
第 17章 泛型 240
17.1 Go泛型設計演化簡史 240
17.2 Go泛型語法 243
17.2.1 例子:返回切片中值 的元素 243
17.2.2 類型參數 247
17.2.3 類型約束 257
17.3 本章小結 269
第 18章 測試 271
18.1 Go測試框架 271
18.2 測試的組織 274
18.2.1 測試文件使用的包名 274
18.2.2 表驅動測試 274
18.2.3 小測試單元 276
18.2.4 將頂層測試函數作為測試套件 277
18.2.5 將子測試視為測 例 278
18.3 示例測試 280
18.4 測試覆蓋率 282
18.5 性能基準測試 285
18.5.1 編寫基準測試 285
18.5.2 並行執行的基準測試 289
18.5.3 建立性能基準 290
18.6 本章小結 293
1. 系統性入門路徑,理念到實戰無斷點!先剖析Go語言歷史、設計哲學建立認知,再逐步講解開發環境、語法特性,通過實戰項目與測試知識落地應用,形成完整學習閉環。 2. 全維度語法覆蓋,新舊特性無遺漏!不僅囊括變量、常量、函數等基礎語法,還深度解讀並發、泛型等覆雜特性,同步納入Go語言新加入功能,助你掌握語言規範。 3. 保姆級教學講解,抽象概念易理解!從變量、數據類型等基礎概念入手,延伸算法與現實世界抽象認知,清晰拆解Go應用運行邏輯,降低新手學習門檻。 4. 實戰化避坑指南,編程慣例早掌握!結合語法講解過程,同步揭示Go語言常見坑點及避坑方法,全程貫穿Go編程慣例與實踐,幫助讀者養成規範編碼習慣。 5. 工程化能力培養,代碼質量有保障!詳解包、模塊、依賴管理等工程化知識,配套測試框架、覆蓋率分析、性能基準測試等內容,助力讀者寫出高質量、高可用性的Go代碼。