Go語言聖經(中文版) 前言 0.1. Go語言起源 0.2. Go語言項目 0.3. 本書的組織 0.4. 更多的信息 0.5. 致謝 第一章 入門 1.1. Hello, World 1.2. 命令行參數 1.3. 査找重複的行 1.4. GIF動畵 1.5. 獲取URL 1.6. 併發獲取多個URL 1.7. Web服務 1.8. 本章要點 第二章 程序結構 2.1. 命名 2.2. 聲明 2.3. 變量 2.3.1. 簡短變量聲明 2.3.2 指針 2.3.3 new 函數 2.3.4. 變量的生命週期 2.4. 賦值 2.4.1. 元組賦值 2.4.2. 可賦值性 2.5. 類型 2.6. 包和文件 2.6.1. 導入包 2.6.2. 包的初始化 2.7. 作用域 第三章 基礎數據類型 3.1. 整型 3.2. 浮點數 3.3. 複數 3.4. 布爾型 3.5. 字符串 3.5.1. 字符串面值 3.5.2. Unicode 3.5.3. UTF-8 3.5.4. 字符串和Byte切片 3.5.5. 字符串和數字的轉換 3.6. 常量 3.6.1. iota 常量生成器 3.6.2. 無類型常量 第四章 複合數據類型 4.1. 數組 4.2. Slice 4.2.1. append函數 4.2.2. Slice內存技巧 4.3. Map 4.4. 結構體 4.4.1. 結構體面值 4.4.2. 結構體比較 4.4.3. 結構體嵌入和匿名成員 4.5. JSON 4.6. 文本和HTML模闆 第五章 函數 5.1. 函數聲明 5.2. 遞歸 5.3. 多返迴值 5.4. 錯誤 5.4.1. 錯誤處理策略 5.4.2. 文件結尾(EOF) 5.5. 函數值 5.6. 匿名函數 5.6.1. 警告:捕獲迭代變量 5.7. 可變參數 5.8. Deferred函數 5.9. Panic異常 5.10. Recover捕獲異常 第六章 方法 6.1. 方法聲明 6.2. 基於指針對象的方法 6.2.1. Nil也是一個合法的接收器類型 6.3. 通過嵌入結構體來擴展類型 6.4. 方法值和方法表達式 6.5. 示例: Bit數組 6.6. 封裝 第七章 接口 7.1. 接口是合約 7.2. 接口類型 7.3. 實現接口的條件 7.4. flag.Value接口 7.5. 接口值 7.5.1. 警告:一個包含nil指針的接口不是nil接口 7.6. sort.Interface接口 7.7. http.Handler接口 7.8. error接口 7.9. 示例: 表達式求值 7.10. 類型斷言 7.11. 基於類型斷言識别錯誤類型 7.12. 通過類型斷言査詢接口 7.13. 類型分支 7.14. 示例: 基於標記的XML解碼 7.15. 補充幾點 第八章 Goroutines和Channels 8.1. Goroutines 8.2. 示例: 併發的Clock服務 8.3. 示例: 併發的Echo服務 8.4. Channels 8.4.1. 不帶緩存的Channels 8.4.2. 管道(Pipeline) 8.4.3. 單向的Channels 8.4.4. 帶緩存的Channels 8.5. 併行的循環 8.6. 示例: 併發的Web爬蟲 8.7. 基於select的多路複用 8.8. 示例: 併發的字典遍歷 8.9. 併發的退出 8.10. 示例: 聊天服務 第九章 基於共享變量的併發 9.1. 競爭條件 9.2. sync.Mutex互斥鎖 9.3. sync.RWMutex讀寫鎖 9.4. 內存同步 9.5. sync.Once初始化 9.6. 競爭條件檢測 9.7. 示例: 併發的非阻塞緩存 9.8. Goroutines和線程 9.8.1. 動態棧 9.8.2. Goroutine調度 9.8.3. GOMAXPROCS 9.8.4. Goroutine沒有ID號 第十章 包和工具 10.1. 包簡介 10.2. 導入路徑 10.3. 包聲明 10.4. 導入聲明 10.5. 包的匿名導入 10.6. 包和命名 10.7. 工具 10.7.1. 工作區結構 10.7.2. 下載包 10.7.3. 構建包 10.7.4. 包文檔 10.7.5. 內部包 10.7.6. 査詢包 第十一章 測試 11.1. go test 11.2. 測試函數 11.2.1. 隨機測試 11.2.2. 測試一個命令 11.2.3. 白盒測試 11.2.4. 擴展測試包 11.2.5. 編寫有效的測試 11.2.6. 避免的不穩定的測試 11.3. 測試覆蓋率 11.4. 基準測試 11.5. 剖析 11.6. 示例函數 第十二章 反射 12.1. 爲何需要反射? 12.2. reflect.Type和reflect.Value 12.3. Display遞歸打印 12.4. 示例: 編碼S表達式 12.5. 通過reflect.Value脩改值 12.6. 示例: 解碼S表達式 12.7. 獲取結構體字段標識 12.8. 顯示一個類型的方法集 12.9. 幾點忠告 第十三章 底層編程 13.1. unsafe.Sizeof, Alignof 和 Offsetof 13.2. unsafe.Pointer 13.3. 示例: 深度相等判斷 13.4. 通過cgo調用C代碼 13.5. 幾點忠告 附録 附録A:原文勘誤 附録B:作者譯者 附録C:譯文授權 附録D:其它語言