●目錄 章 常見數據結構的實現原理 1.1 管道 1.1.1 熱身測驗 1.1.2 特性速覽 1.1.3 實現原理 1.2 slice 1.2.1 熱身測驗 1.2.2 特性速覽 1.2.3 實現原理 1.2.4 切片表達式 1.3 map 1.3.1 熱身測驗 1.3.2 特性速覽 1.3.3 實現原理 1.4 struct 1.4.1 熱身測驗 1.4.2 內嵌字段 1.4.3 方法受體 1.4.4 字段標簽 1.5 iota 1.5.1 熱身測驗 1.5.2 特性速覽 1.5.3 實現原理 1.6 string 1.6.1 熱身測驗 1.6.2 特性速覽 1.6.3 實現原理 第2章 控制結構 2.1 select 2.1.1 熱身測驗 2.1.2 特性速覽 2.1.3 實現原理 2.2 for-range 2.2.1 熱身測驗 2.2.2 特性速覽 2.2.3 實現原理 第3章 協程 3.1 協程的概念 3.2 調度模型 3.3 調度策略 第4章 內存管理 4.1 內存分配 4.2 垃圾回收 4.3 逃逸分析 第5章 並發控制 5.1 channel 5.2 WaitGroup 5.3 context 5.4 Mutex 5.5 RWMutex 5.5.1 讀寫鎖的數據結構 5.5.2 場景分析 第6章 反射 6.1 熱身測驗 6.2 接口 6.3 反射定律 第7章 測試 7.1 快速開始 7.1.1 &nbs測試 7.1.2 基準測試 7.1.3 示例測試 7.2 進階測試 7.2.1 子測試 7.2.2 Main測試 7.3 實現原理 7.3.1 testing.common 7.3.2 testing.TB接口 7.3.3 &nbs測試的實現原理 7.3.4 性能測試的實現原理 7.3.5 示例測試的實現原理 7.3.6 Main測試的實現原理 7.3.7 go test的工作機制 7.4 擴展閱讀 7.4.1 測試參數 7.4.2 benchstat 第8章 異常處理 8.1 error 8.1.1 熱身測驗 8.1.2 基礎error 8.1.3 鏈式error 8.1.4 工程遷移 8.2 defer 8.2.1 熱身測驗 8.2.2 約法三章 8.2.3 實現原理 8.2.4 性能優化 8.3 panic 8.3.1 熱身測驗 8.3.2 工作機制 8.3.3 源碼剖析 8.4 recover 8.4.1 熱身測驗 8.4.2 工作機制 8.4.3 源碼剖析 第9章 定時器 9.1 一次性定時器(Timer) 9.1.1 快速開始 9.1.2 實現原理 9.2 周期性定時器(Ticker) 9.2.1 快速開始 9.2.2 實現原理 9.3 runtimeTimer 9.3.1 實現原理 9.3.2 性能優化 9.4 案例分享 0章 語法糖 10.1 簡短變量聲明符 10.1.1 熱身測驗 10.1.2 規則 10.2 可變參函數 1章 版本管理 11.1 安裝Go 11.2 刪除Go 11.3 升級Go 11.4 Go版本管理器 11.4.1 快速開始 11.4.2 工作機制 11.4.3 小結 11.5 源碼編譯 11.5.1 源碼 11.5.2 源碼編譯過程 2章 Go語言依賴管理 12.1 GOPATH 12.1.1 GOROOT是什麼 12.1.2 GOPATH是什麼 12.1.3 依賴查找 12.1.4 GOPATH的缺點 12.2 vendor 12.2.1 vendor目錄位置 12.2.2 搜索順序 12.2.3 vendor的不足 12.3 Go Module 12.3.1 Go Module基礎 12.3.2 快速實踐 12.3.3 replace指令 12.3.4 exclude指令 12.3.5 indirect指令 12.3.6 版本選擇機制 12.3.7 incompatible 12.3.8 偽版本 12.3.9 依賴包存儲 12.3.10 go.sum 12.3.11 模塊代理 12.3.12 GOSUMDB的工作機制 12.3.13 GOSUMDB的實現原理 12.3.14 第三方代理 12.3.15 私有模塊 12.3.16 Go Module的演進 3章 編程陷阱 13.1 切片擴容 13.2 空切片 13.3 append的本質 13.4 循環變量引用 13.5 協程引用循環變量 13.6 recover失效
內容簡介
本書基於Go語言源碼提煉出Go特性的實現原理,並配以大量圖表和實例以通俗易懂的語言描述出來,包括常見數據結構實現原理(包括chan、slice、map、struct等),常見控制結構實現原理(包括defer、select、range、mutex等),Go協程、內存管理、反射等機制,Go 工具鏈指導及原理(測試、性能測試、依賴管理等)。另外,本書還包括由實際項目Bug復盤而來的案例分享,包括定時器資源洩露、語法糖陷阱等。本書還包含大量練習題目,甚至可以作為面試題目來源。