1. 程式人生 > >Go語言聖經(中文版)讀書筆記

Go語言聖經(中文版)讀書筆記

首先感謝作者譯者,讓我們見識到了如此好的文章。

1. 入門

  1. Hello,World
  2. 命令列引數
  3. 查詢重複的行
  4. GIF動畫
  5. 獲取URL
  6. 併發獲取多個URL
  7. WEB服務
  8. 本章重點

2.程式結構

  1. 命名
  2. 宣告
  3. 變數
  4. 賦值
  5. 型別
  6. 包和檔案
  7. 作用域

3.基礎資料型別

  1. 整型
  2. 浮點數
  3. 複數
  4. 字串
  5. 常量

4.複合資料型別

  1. 陣列
  2. Slice
  3. Map
  4. 結構體
  5. JSON
  6. 文字和HTML模板

5.函式

  1. 函式宣告
  2. 遞迴
  3. 多返回值
  4. 錯誤
  5. 函式值
  6. 匿名函式
  7. 可變引數
  8. Deferred函式
  9. Panic異常
  10. Recover捕獲異常

6.方法

  1. 方法宣告
  2. 基於指標物件的方法
  3. 通過嵌入結構體來擴充套件型別
  4. 方法值和方法表示式
  5. 示例:Bit陣列
  6. 封裝

7.介面

  1. 介面是合約
  2. 介面型別
  3. 實現介面的條件
  4. flag.Value介面
  5. 介面值
  6. sort.interface介面
  7. http.Handler介面
  8. error介面
  9. 示例:表示式求值
  10. 型別斷言
  11. 基於型別斷言識別錯誤型別
  12. 通過型別斷言查詢介面
  13. 型別分支
  14. 示例:基於標記的XML解碼
  15. 補充幾點

8.Goroutines和Channels

  1. Goroutines
  2. 示例:併發的Clock服務
  3. 示例:併發的Echo服務
  4. Channels
  5. 併發的迴圈
  6. 示例:併發的Web爬蟲
  7. 基於select的多路複用
  8. 示例:併發的字典遍歷
  9. 併發的退出
  10. 示例:聊天服務

9.基於共享變數的併發

  1. 競爭條件
  2. sync.Mutex互斥鎖
  3. sync.RWMutex讀寫鎖
  4. 記憶體同步
  5. sync.Once初始化
  6. 競爭條件檢測
  7. 示例:併發的非阻塞快取
  8. Goroutines和執行緒

10.包和工具

  1. 包簡介
  2. 匯入路徑
  3. 包宣告
  4. 匯入宣告
  5. 包的匿名匯入
  6. 包和命名
  7. 工具

11.測試

  1. go test
  2. 測試函式
  3. 測試覆蓋率
  4. 基準測試
  5. 剖析
  6. 示例函式

12.反射

  1. 為何需要反射
  2. reflect.Type和reflect.Value
  3. Display遞迴列印
  4. 示例:編碼S表示式
  5. 通過reflect.Value修改值
  6. 示例:解碼S表示式
  7. 獲取結構體欄位表示
  8. 顯示一個型別的方法集
  9. 幾點忠告

13.底層程式設計

  1. unsafe.Sizeof,Aligonf和Offsetof
  2. unsafe.Pointer
  3. 示例:深度相等判斷
  4. 通過cgo呼叫c程式碼
  5. 幾點忠告

14.附錄

  1. 附錄A:原文勘誤
  2. 附錄B:作者譯者
  3. 附錄C:譯文授權
  4. 附錄D:其他語言