预购商品
书目分类
特别推荐
第1章 設置Go語言的開發環境7 1.1 安裝Go工具7 1.2 Go的工作空間8 1.3 Go命令集9 1.4 分析與審查13 1.5 選擇開發工具15 1.6 Makefile18 1.7 保持更新19 1.8 總結20 第2章 基礎類型和變數聲明21 2.1 內置類型21 2.2 var與:= 30 2.3 const關鍵字32 2.4 有類型的常量與無類型的常量33 2.5 未使用的變數34 2.6 常量與變數的命名35 2.7 總結37 第3章 複合類型38 3.1 陣列38 3.2 切片40 3.3 字串、字元和位元組49 3.4 映射52 3.5 結構體57 3.6 總結61 第4章 代碼塊、影子變數和流程控制62 4.1 代碼塊62 4.2 if語句66 4.3 for語句67 4.4 switch語句78 4.5 默認的switch語句81 4.6 if和switch之間的選擇82 4.7 goto語句83 4.8 總結85 第5章 函數86 5.1 函數的聲明和調用86 5.2 函數即值92 5.3 閉包95 5.4 defer98 5.5 函數的值調用101 5.6 總結103 第6章 指針104 6.1 指針快速入門104 6.2 不畏懼指針107 6.3 指針即可變的參數109 6.4 指標作為第二選擇113 6.5 指針傳遞可提高性能114 6.6 零值與無值114 6.7 映射與切片的區別115 6.8 切片用作緩衝區118 6.9 優化垃圾回收119 6.10 總結121 第7章 類型、方法與介面122 7.1 Go語言的類型122 7.2 方法123 7.3 使用內嵌進行組合131 7.4 內嵌不是繼承132 7.5 介面概覽133 7.6 介面是類型安全的鴨子類型134 7.7 內嵌與介面137 7.8 接收介面,返回結構體138 7.9 介面與nil139 7.10 空介面139 7.11 類型斷言與type-switch141 7.12 謹慎使用類型斷言與type-switch143 7.13 函數類型實現介面145 7.14 隱式介面實現依賴注入146 7.15 Wire150 7.16 Go並非傳統意義上的物件導向語言150 7.17 總結150 第8章 錯誤151 8.1 如何處理錯誤151 8.2 使用字串創建簡單錯誤152 8.3 哨兵錯誤153 8.4 錯誤是值155 8.5 包裝錯誤157 8.6 Is和As159 8.7 使用defer包裝錯誤162 8.8 panic和recover163 8.9 從錯誤中獲取堆疊跟蹤資訊165 8.10 總結165 第9章 模組、包和導入166 9.1 倉庫、模組和包166 9.2 go.mod166 9.3 創建包167 9.4 模組177 9.5 模組的發佈185 9.6模組的版本控制186 9.7 模組代理伺服器187 9.8 總結188 第10章 Go的併發程式設計189 10.1 何時使用併發程式設計189 10.2 goroutine190 10.3 通道192 10.4 select語句194 10.5 併發實踐與模式197 10.6 何時使用互斥鎖211 10.7 atomic214 10.8 額外資源214 10.9 總結214 第11章 Go語言標準庫215 11.1 標準io庫215 11.2 time220 11.3 encoding/json222 11.4 net/http228 11.5 總結234 第12章 上下文235 12.1 什麼是上下文235 12.2 取消238 12.3 計時器241 12.4 在上下文中處理取消請求243 12.5 傳遞值244 12.6 總結249 第13章 測試250 13.1 測試的基本知識250 13.2 表格驅動測試256 13.3 檢查代碼覆蓋率258 13.4 基準測試261 13.5 Go中的測試樁264 13.6 httptest269 13.7 集成測試和編譯標籤271 13.8 使用競爭檢測器檢查併發問題272 13.9總結274 第14章 惡龍禁區:反射、unsafe和cgo275 14.1 在運行時使用反射處理類型275 14.2 unsafe意味著不安全289 14.3 cgo用於集成,而不是為了性能294 14.4 總結297 第15章 展望未來:Go中的泛型298 15.1 泛型減少冗餘碼,提高類型安全性298 15.2 Go中的泛型300 15.3 類型列表可指定操作符305 15.4 泛型函數抽象演算法306 15.5 類型列表限制常量和實現307 15.6 暫不考慮的問題310 15.7 慣例模式與泛型312 15.8 未來更多可能312 15.9 總結313
客服公告
热门活动
订阅电子报